【发布时间】:2011-11-13 05:48:05
【问题描述】:
我有一个返回 void 的控制器方法,因为它正在构建 Excel 报告供用户下载。我们正在使用的 Excel 3rd 方库正在写入响应本身。该方法看起来像这样:
[HttpGet]
public void GetExcel(int id)
{
try
{
var report = _reportService.GetReport(id);
var table = _reportService.GetReportTable(id);
var excelReport = new ExcelReport(table, report.Name);
excelReport.DownloadReport(System.Web.HttpContext.Current.Response);
}
catch (Exception ex)
{
// This is wrong, of course, because I'm not returning an ActionResult
Response.RedirectToRoute("/Report/Error/", new { exceptionType = ex.GetType().Name });
}
}
如果用户不符合获取报告的特定凭据,则有多项安全检查会引发异常。我想重定向到不同的页面并传递一些有关异常的信息,但我不知道如何在 MVC3 中执行此操作....
有什么想法吗?
【问题讨论】:
标签: asp.net-mvc model-view-controller asp.net-mvc-3