在site.master视图中,我有一些内联代码,如:
<%=(ViewData["Name"] as Model).Name %>
如果ViewData [“Name”]为null,则上面的代码将导致异常。然后我想向用户显示自定义的错误视图。我所做的是设置错误映射是web.config,如:
<customErrors mode="On" defaultRedirect="~/Error/Unknown">
<error statusCode="404" redirect="~/Error/NotFound" />
<error statusCode="403" redirect="~/Error/NoAccess" />
</customErrors>
我的错误控制器是:
public class ErrorController : Controller
{
public ActionResult Index()
{
return View();
}
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult NotFound(string aspxerrorpath)
{
this.ViewData["HttpError::AspxErrorPath"] = aspxerrorpath;
this.Response.StatusCode = (int)HttpStatusCode.NotFound;
return this.View("NotFound");
}
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult NoAccess()
{
Response.StatusCode = (int)HttpStatusCode.Unauthorized;
return View("NoAccess");
}
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Unknown()
{
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View("Unknown");
}
}
但我无法捕捉错误。我会像
那样在borwoser中得到错误 >'/'应用程序中的服务器错误。 运行时错误......这意味着未捕获错误。 如何解决这个问题?
答案 0 :(得分:2)
ASP.Net MVC中的自定义错误页面由[HandleError]操作过滤器属性处理。有关如何使用它的详细信息,请参阅ScottGu或Danny Tuppenny's博客文章。
This question也可能与您的问题有关。