Да, вы можете ,,, У меня есть контроллер ошибок для различных ошибок Handel.
В вашем web.config добавьте следующее, чтобы включить режим customErrors, и установите его для перенаправления на ваш контроллер при возникновении любых ошибок.
<system.web>
<customErrors mode="On" defaultRedirect="/error/problem">
<error statusCode="404" redirect="/error/notfound" />
<error statusCode="500" redirect="/error/problem" />
</customErrors>
</system.web>
Вы можете добавить больше типов ошибок к приведенному выше, если вы хотите быть более конкретными, любые ошибки, которые не перечислены, будут возвращаться к перенаправлению по умолчанию.
и вот мой контроллер ошибок:
public class ErrorController : Controller
{
public ActionResult NotFound()
{
ErrorViewModel model = BaseViewModelBuilder.CreateViewModel<ErrorViewModel>("We couldn't find what you were looking for");
// Get the URL that caused the 404 error.
model.ErrorUrl = Request.UrlReferrer;
// Set the response status code to 404
Response.StatusCode = (int)HttpStatusCode.NotFound;
Response.TrySkipIisCustomErrors = true;
return View(model);
}
public ActionResult Problem()
{
ErrorViewModel model = BaseViewModelBuilder.CreateViewModel<ErrorViewModel>("Well this is embarrassing...");
return View(model);
}
}
и, как вы можете догадаться, у меня есть представления Error.aspx, Problem.aspx в папке просмотра ошибок.