处理MVC中的无效URL

时间:2009-05-24 11:02:04

标签: asp.net-mvc model-view-controller asp.net-mvc-routing invalid-url

如何处理MVC中的无效网址?

例如:当用户输入http://localhost/User/MyProfile而不是 http://localhost/User/Profile,它会抛出异常。

如何处理此请求?

3 个答案:

答案 0 :(得分:12)

首先需要在web.config中添加自定义错误页面网址:

<customErrors mode="On" defaultRedirect="~/Error/404" />  

并添加一个控制器来处理无效的网址:

public class ErrorController:Controller
    {
        [ActionName("404")]
        public ActionResult Error404()
        {
            return View("Error");
        }
    }

如果您想将用户重定向到主页,那么您不需要Error控制器只需修改自定义错误标记:

<customErrors mode="On" defaultRedirect="~/Home/Index" />  

答案 1 :(得分:1)

你的意思是?

// Show a 404 error page for anything else.
    routes.MapRoute("Error", "{*url}",
    new { controller = "Error", action = "404" }
);

答案 2 :(得分:0)

我认为应该将每个请求重定向到前端控制器,因此将代码包装在将拦截异常的try / catch块中,也许您可​​以重定向到catch块中的主页,或者只是引发404错误异常处理程序。

您的服务器语言是什么?