MVC重定向到没有控制器的视图

时间:2014-10-07 13:19:48

标签: c# asp.net-mvc

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

像这样......

 [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");
     }
  }

提前致谢

2 个答案:

答案 0 :(得分:5)

您可以使用return View()

这告诉MVC生成要为指定视图显示的HTML并将其发送到浏览器。这与Asp.Net WebForm 中的Server.Transfer()类似。

     {
       //Log exception..    
        //show an error view, however no action method so how do I redirect?
        return View("your view path");
     }

答案 1 :(得分:4)

您需要为错误视图创建控制器和路径。

另一种方法是让你的错误视图成为一个简单的html页面,然后像这样重定向到它:

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

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

希望这有帮助。