我创建了一个通用错误视图,我想在整个站点的操作方法内部发生异常时显示该视图。我创建了一个部分页面,所有导航都位于其中,因此我不需要在此视图上使用控制器,那么如何从控制器内的操作方法重定向到它?
类似这样的事情...
[HttpPost]
public ActionResult Test(VM viewModel)
{
try
{
// posting info to the server...
}
catch (Exception ex)
{
//Log exception..
//show an error view, however no action method so how do I redirect?
return RedirectTo ??? ("Error");
}
}
您可以在您的方法中使用
return View()
:
{
//Log an exception...
//show an error view, however no action method so how do I redirect?
return View("your view path");
}
这告诉您的 MVC 应用程序生成要为指定视图显示的 HTML 并将其发送到浏览器。这就像 ASP.Net Web 表单中的
Server.Transfer()
一样。
您需要为错误视图创建一个控制器和一条路线。
另一种方法是让您的错误查看纯 HTML 页面,然后像这样重定向到它:
return Redirect("~/error.html");
我发现本指南在其他 MVC 应用程序上设置自定义错误时非常有用:http://benfoster.io/blog/aspnet-mvc-custom-error-pages