返回404错误ASP.NET MVC 3

返回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”部分取代。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注