[英]ASP.NET MVC ExecuteResult vs ActionResult
我看到它用於向響應添加標頭,然后返回一個文件用於流式傳輸。
public override void ExecuteResult(ControllerContext context)
{
...
response.AddHeader("Accept-Ranges", "bytes");
response.AddHeader("Content-Length", responseLength.ToString());
response.Cache.SetCacheability(HttpCacheability.Public); //required for etag output
response.Cache.SetETag(etag); //required for IE9 resumable downloads
response.ContentType = blockBlob.Properties.ContentType;
blockBlob.DownloadRangeToStream(response.OutputStream, startIndex, responseLength);
}
使用ExecuteResult
和ActionResult
什么區別,你會如何使它成為異步?
ExecuteResult
是ActionResult
唯一的抽象方法。 在action方法返回之后,MVC框架執行此方法以生成到瀏覽器的輸出。
namespace System.Web.Mvc
{
public abstract class ActionResult
{
public abstract void ExecuteResult(ControllerContext context);
}
}
所以,兩者之間沒有區別 - 返回任何ActionResult
子類告訴MVC框架在該類上執行ExecuteResult
方法。
如果使用MVC 5,則無法運行Async。 但是, MVC Core ActionResult
類包含ExecuteResultAsync
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.