7

如何处理 MVC 中的无效 URL?

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

如何处理这个请求?

4

3 回答 3

12

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

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

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

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

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

<customErrors mode="On" defaultRedirect="~/Home/Index" />  
于 2009-05-24T11:46:18.290 回答
1

你是这个意思吗?

// Show a 404 error page for anything else.
    routes.MapRoute("Error", "{*url}",
    new { controller = "Error", action = "404" }
);
于 2009-05-24T11:11:59.733 回答
0

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

你的服务器语言是什么?

于 2009-05-24T11:05:56.670 回答