如何在 ASP.NET MVC 应用程序中重定向到没有控制器的视图?

问题描述 投票:0回答:2

我创建了一个通用错误视图,我想在整个站点的操作方法内部发生异常时显示该视图。我创建了一个部分页面,所有导航都位于其中,因此我不需要在此视图上使用控制器,那么如何从控制器内的操作方法重定向到它?

类似这样的事情...

 [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");
     }
  }
c# asp.net-mvc http-redirect
2个回答
5
投票

您可以在您的方法中使用

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()
一样。


4
投票

您需要为错误视图创建一个控制器和一条路线。

另一种方法是让您的错误查看纯 HTML 页面,然后像这样重定向到它:

return Redirect("~/error.html");

我发现本指南在其他 MVC 应用程序上设置自定义错误时非常有用:http://benfoster.io/blog/aspnet-mvc-custom-error-pages

© www.soinside.com 2019 - 2024. All rights reserved.