109*_*793 17 c# asp.net-mvc fileresult
这可能是一个简单的,但这里是:
我正在我的MVC3应用程序中实现一个excel可下载的报告.我过去曾使用过这种方法而且效果很好,但在这种情况下,报告中可能不存在销售数据.这是我的代码:
我在Reports控制器中有一个FileResult操作:
[HttpPost]
public FileResult ExcelReportDownload(ReportExcelDownloadRequest reportRequest)
{
ReportEngine re = new ReportEngine();
Stream report = re.GetReport(reportRequest);
return new FileStreamResult(report, "application/ms-excel")
{
FileDownloadName = "SalesReport.xls"
};
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有时报告流可能为空,这意味着没有可用的销售信息,在这种情况下,我宁愿重定向到显示消息的视图,说没有可用的销售信息,但是我不知道如何实现这个.
有没有办法做到这一点?
Rap*_*aus 29
好吧,FileResult
继承自ActionResult
:
如果结果可以是RedirectToRouteResult
(继承自ActionResult
)或a FileResult
,那么......您的操作必须是类型ActionResult
,可以管理两者.
类似的东西:
[HttpPost]
public ActionResult ExcelReportDownload(ReportExcelDownloadRequest reportRequest)
{
ReportEngine re = new ReportEngine();
Stream report = re.GetReport(reportRequest);
if (report == null)
return RedirectToAction(<action Name>);
else
return new FileStreamResult(report, "application/ms-excel")
{
FileDownloadName = "SalesReport.xls"
};
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14728 次 |
最近记录: |