返回404错误ASP.NET MVC 3
如果您使用提琴手检查响应,我相信您会发现空白页面实际上正在返回404状态代码。问题是没有视图被渲染,因此空白页。您可以通过向Web.config中添加customErrors元素来获取显示的实际视图,该元素将在出现特定状态代码时将用户重定向到特定的url,然后您可以像处理任何url一样进行处理。这是下面的演练:首先在适用的情况下抛出HttpException。实例化异常时,请确保使用如下重载之一,该重载采用http状态代码作为参数,如下所示。
throw new HttpException(404, "NotFound");
然后在您的web.config文件中添加一个自定义错误处理程序,以便您可以确定在发生上述异常时应呈现哪个视图。下面是一个示例:
现在,在Global.asax中添加一个处理网址404的路由条目,该网址会将请求传递给控制器的操作,该操作将显示404页面的视图。Global.asax
routes.MapRoute( "404", "404", new { controller = "Commons", action = "HttpStatus404" } );
CommonsController
public ActionResult HttpStatus404() { return View(); }
剩下的就是为上述操作添加视图。使用上述方法的一个警告:根据《 C#2010中的Pro ASP.NET 4》(Apress)一书,如果您使用的是IIS 7,则customErrors的使用已过时。相反,应使用httpErrors部分。这是这本书的引文:但是,尽管此设置仍适用于Visual Studio的内置测试网络服务器,实际上已被IIS 7.x中的“ 5”部分取代。