#c# #asp.net-mvc #asp.net-mvc-2
#c# #asp.net-mvc #asp.net-mvc-2
Вопрос:
У меня есть ASP.Net Веб-приложение MVC 2, где у меня есть HomeController. Метод Index генерирует несанкционированное исключение. У меня есть customErrors = включено. Теперь я хочу показать файл view Error.aspx в общей папке с исключением.Сообщение. Но я получаю ресурс не найден / Ошибка в браузере.
Примечание: я просмотрел все соответствующие ссылки на StackOverflow.
какая-нибудь помощь?
Комментарии:
1. Пожалуйста, опубликуйте какой-нибудь код, как вы используете пользовательский атрибут error. И обратите внимание, что по умолчанию атрибут загружает
error.aspx
представление по умолчанию. Поэтому убедитесь, что вам не нужно его удалять.
Ответ №1:
Шаг за шагом:
- Создайте новый ASP.NET Проект MVC с использованием мастера Visual Studio по умолчанию
-
Измените HomeController так, чтобы он выглядел следующим образом:
[HandleError] public class HomeController : Controller { public ActionResult Index() { throw new Exception("oops"); } }
-
Добавьте следующее в
<system.web>
раздел web.config:<customErrors mode="On" />
-
Запустите приложение
- Как и ожидалось,
~/Views/Shared/Error.aspx
отображается
Комментарии:
1. Спасибо. Но я хочу передать объект Exception в это представление ошибок, чтобы я мог отобразить сообщение из него.
2. @Morin, объект исключения уже передан в
Error.aspx
представление с помощьюHandleError
фильтра действий. Это представление строго типизировано дляSystem.Web.Mvc.HandleErrorInfo
. Таким образом, внутри него вы можете просто:<%= Html.DisplayFor(x => x.Exception.Message) %>
отобразить сообщение об ошибке.