我曾经看到它被用于向响应中添加头信息,然后返回一个文件进行流式传输。
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
的区别是什么?如何将其异步化?