0
A
回答
0
編輯原始回覆刪除。
我不確定如果存在的文件結果允許您修改內容配置,我相信它會強制「附件」的內容配置。如果你想使用一個不同的配置,我想實現一個自定義操作過濾器:
/// <summary>
/// Defines an <see cref="ActionResult" /> that allows the output of an inline file.
/// </summary>
public class InlineFileResult : FileContentResult
{
#region Constructors
/// <summary>
/// Writes the binary content as an inline file.
/// </summary>
/// <param name="data">The data to be written to the output stream.</param>
/// <param name="contentType">The content type of the data.</param>
/// <param name="fileName">The filename of the inline file.</param>
public InlineFileResult(byte[] data, string contentType, string fileName)
: base(data, contentType)
{
FileDownloadName = fileName;
}
#endregion
#region Methods
/// <summary>
/// Executes the result, by writing the contents of the file to the output stream.
/// </summary>
/// <param name="context">The context of the controller.</param>
public override void ExecuteResult(ControllerContext context)
{
if (context == null) {
throw new ArgumentNullException("context");
}
HttpResponseBase response = context.HttpContext.Response;
response.ContentType = this.ContentType;
if (!string.IsNullOrEmpty(this.FileDownloadName)) {
ContentDisposition disposition = new ContentDisposition();
disposition.FileName = FileDownloadName;
disposition.Inline = true;
context.HttpContext.Response.AddHeader("Content-Disposition", disposition.ToString());
}
WriteFile(response);
}
#endregion
}
這是一個我以前使用過,因爲我通過實際的byte []文件的數據。
0
他們基本上會做同樣的事情。建立一個FileContentResult
可能是最直接和最容易上手:
public FileContentResult GetPdf()
{
return File(/* byte array contents */, "application/pdf");
}
如果你想保存自己不必指定內容類型(如果你總是要做的PDF),你可以創建一個指定其內容類型(application/pdf
)的ActionResult
,然後返回該對象而不是FileContentResult
(可能類似PdfContentResult
)。
但就像我說的,他們會做同樣的事情,不會有任何性能差異。
相關問題
- 1. 自定義視圖引擎vs自定義操作結果
- 2. Magento自定義按鈕操作結果爲404
- 3. 如何在MVC4中創建自定義刪除操作結果?
- 4. 將group_by()與自定義函數或操作相結合
- 5. 在自定義類上定義操作
- 6. 在Selenium中定義自定義操作
- 7. SourceTree自定義操作。 $ SHA
- 8. 自定義操作項ActionBarSherlock
- 9. 卸載自定義操作
- 10. 自定義操作欄
- 11. 自定義分割操作
- 12. 自定義操作欄
- 13. WIX C++自定義操作
- 14. 自定義操作欄sherlock
- 15. Rails自定義操作
- 16. AWS Cloudwatch自定義操作
- 17. Joomla ACL自定義操作
- 18. 自定義Rails操作
- 19. MSP和自定義操作
- 20. WIX自定義操作
- 21. 自定義操作欄Sherlock
- 22. Rails:model_url自定義操作
- 23. 自定義操作函數
- 24. AngularJS $ resource自定義操作
- 25. 自定義安裝操作
- 26. 自定義操作失敗
- 27. MSI MessageBox自定義操作
- 28. designMode和自定義操作?
- 29. InstallScript自定義操作
- 30. 自定義操作和組
對不起,我的意思是ActionResult(並執行ExecuteResult)而不是ActionFilter。更正的標題。 – DotnetDude 2010-07-06 16:13:47