Я собираю исключения и перенаправляю пользователей на страницу с ошибкой.Я передаю сообщение об исключении и URL-адрес возврата, чтобы сообщить пользователю о случившемся и разрешить ему вернуться на другую страницу.
try
{
return action(parameters);
}
catch (Exception exception)
{
ErrorViewModel errorModel = new ErrorViewModel();
errorModel.ErrorMessage = "An error occured while doing something.";
errorModel.ErrorDetails = exception.Message;
errorModel.ReturnUrl = Url.Action("Controller", "Action");
return RedirectToAction("Index", "Error", errorModel);
}
Это похоже на способ слишком большого количества кода для выполнения каждого действия,Я использую глобальный фильтр для ошибок:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
HandleErrorAttribute attribute = new HandleErrorAttribute();
filters.Add(attribute);
}
, и у меня есть мои настройки web.config, подобные этим:
<customErrors mode="On" defaultRedirect="~/Error/Unknown">
Но это работает только для необработанных исключений.
Я хочу, чтобы исключения вызывали перенаправление на контроллер ошибок / действие, принимающее параметр, содержащий сведения об исключении.Было бы хорошо, если бы я мог указать обратный URL-адрес для каждого отдельного действия или указать значение по умолчанию, если ничего не указано.