В представлении 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 как
Ошибка сервера в «/» приложении.
Ошибка выполнения ...
Это означает, что ошибка не была зафиксирована.
Как решить эту проблему?