C# 从FileResult重定向到MVC ActionResult
这可能是一个简单的问题,但下面是: 我正在MVC3应用程序中实现一个excel可下载报告。我过去使用过这种方法,它工作得很好,但是在这种情况下,报告中可能不存在销售数据。这是我的密码: 我在报表控制器中有一个FileResult操作:C# 从FileResult重定向到MVC ActionResult,c#,asp.net-mvc,fileresult,C#,Asp.net Mvc,Fileresult,这可能是一个简单的问题,但下面是: 我正在MVC3应用程序中实现一个excel可下载报告。我过去使用过这种方法,它工作得很好,但是在这种情况下,报告中可能不存在销售数据。这是我的密码: 我在报表控制器中有一个FileResult操作: [HttpPost] public FileResult ExcelReportDownload(ReportExcelDownloadRequest reportRequest) { ReportEngine re = n
[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"
};
}
我的问题是,有时报告流可能为空,这意味着没有可用的销售信息,在这种情况下,我宁愿重定向到一个视图,该视图显示一条消息,表示没有可用的销售信息,但我不确定如何实现这一点
有办法做到这一点吗?那么,
FileResult
继承自ActionResult
:
如果结果可以是重定向路由结果
(继承自操作结果
)或文件结果
,则。。。您的操作类型必须为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"
};
}
[HttpPost]
公共操作结果ExcelReportDownload(ReportExcelDownloadRequest reportRequest)
{
ReportEngine re=新的ReportEngine();
Stream report=re.GetReport(reportRequest);
如果(报告==null)
返回重定向到操作();
其他的
返回新文件streamresult(报告,“应用程序/ms excel”)
{
FileDownloadName=“SalesReport.xls”
};
}