Skip to content

Instantly share code, notes, and snippets.

@vcavalcante
vcavalcante / gist:4667883
Created January 29, 2013 21:08
ExcelResult
public class ExcelResult : ActionResult
{
      public string FileName { get; set; }
      public string Path { get;set; }
 
      public override void ExecuteResult(ControllerContext context)
      {
            context.HttpContext.Response.Buffer = true;
            context.HttpContext.Response.Clear();
            context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + FileName);
@vcavalcante
vcavalcante / Erro.cshtml
Created June 12, 2013 04:24
Demonstrando que o TempData continua vivo mesmo passando por uma action e chega na View.
<strong>@TempData["erro"]</strong>
@vcavalcante
vcavalcante / ExcelResult.CS
Last active December 19, 2015 06:48
ExcelResult ASP.NET MVC
public class ExcelResult : ActionResult
{
      public string FileName { get; set; }
      public string Path { get;set; }
 
      public override void ExecuteResult(ControllerContext context)
      {
            context.HttpContext.Response.Buffer = true;
            context.HttpContext.Response.Clear();
            context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + FileName);
//action
public class Aluno
{
public int Id { get; set; }
public string Nome { get; set; }
public string Turma { get; set; }
}
//action
var ufs = new List<UF>
{
@vcavalcante
vcavalcante / gist:5930626
Created July 4, 2013 22:36
ActionFilter
public class MeuLog : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Response.Write(Log("OnActionExecuting", filterContext.RouteData));
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.HttpContext.Response.Write(Log("OnActionExecuted", filterContext.RouteData));
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("WindowsPhone")
{
ContextCondition = ctx => ctx.GetOverriddenUserAgent().Contains("Windows Phone")
});
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Mobile")
{
ContextCondition = ctx => ctx.GetOverriddenUserAgent().Contains("Nexus 7")
});
@vcavalcante
vcavalcante / gist:5990697
Created July 13, 2013 13:10
OverrideActionFilters
public class MeuFiltro : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
Debug.WriteLine("Executei o filtro");
}
}
//FilterConfig.cs
filters.Add(new MeuFiltro());
@vcavalcante
vcavalcante / gist:5990895
Created July 13, 2013 14:26
AttributeRouting Web API
public class MoviesController : ApiController
{
[HttpGet("actors/{actorId}/movies")]
public Movie Get(int actorId) { }
[HttpGet("directors/{directorId}/movies")]
public Movie Get(int directorId) { }
}
[RoutePrefix("api/v1/customers")]
public class CustomersV1Controller : ApiController { ... }
public class BasicAuthAttribute : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
}
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
var user = filterContext.HttpContext.User;
if (user == null || !user.Identity.IsAuthenticated)
Onde tudo começou: http://alistapart.com/article/responsive-web-design
http://alistapart.com/d/responsive-web-design/ex/ex-site-flexible.html
Comparativo
https://docs.google.com/a/cavalcante.net/spreadsheet/ccc?key=0Al0lI17fOl9DdDgxTFVoRzFpV3VCdHk2NTBmdVI2OXc#gid=0
Responsive calculator
http://rwdcalc.com/
Pixel to EM