using System.Text; using System.Web; using System.Web.Mvc; namespace Hiway { public class BinaryContentResult : ActionResult { public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.ClearContent(); context.HttpContext.Response.ContentType = this.ContentType; context.HttpContext.Response.ContentEncoding = Encoding.UTF8; context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + HttpUtility.UrlEncode(this.FileName, new UTF8Encoding()).Replace("+", "%20")); context.HttpContext.Response.BinaryWrite(this.Content); context.HttpContext.Response.End(); } public byte[] Content { get; set; } public string ContentType { get; set; } public string FileName { get; set; } } }