我有一个生成Word文档的MVC操作:
[HttpGet]
public ActionResult ExportToWord(string docId)
{
try
{
//...
//Word-document generating is done here...
//...
return File(stream, MIMEAssistant.GetMIMEType("docx"), fileName + ".docx");
}
catch (Exception e)
{
throw new Exception("Problem with generating! " + e.ToString());
}
如果有的话,我会使用URL
获取Asp.Net标准例外http://localhost:18314/Export/ExportToWord?docId=5
如果我有,我有相同的网址。重定向没有完成。它必须去
http://localhost:18314/Home/ErrorPage.
现在用户没有得到任何错误页面,只是重新加载页面。由于URL为
,因此页面重新加载不正确http://localhost:18314/Export/ExportToWord?docId=5
我希望这是可以理解的描述:)
问题:如何正确重定向到... / Home / ErrorPage并使用Elmah日志记录工具发送异常?
答案 0 :(得分:2)
你可以return RedirectToAction("ErrorPage", "Home");
而不是抛出异常。有RedirectToAction
个重载允许传递路由值(因此您可以传递错误ID,异常类型等)。
<强>更新强>
由于您希望使用ELMAH记录异常,我建议手动记录错误并重定向到以下操作:
catch(Exception e)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(e);
return RedirectToAction("ErrorPage", "Home");
}