如何处理MVC中的无效网址?
例如:当用户输入http://localhost/User/MyProfile而不是 http://localhost/User/Profile,它会抛出异常。
如何处理此请求?
答案 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错误异常处理程序。
您的服务器语言是什么?