2017-01-04 15 views
9

У меня есть этот код в global.asaxКак создать объект контроллера и выполнять действия с параметром от global.asax

protected void Application_Error(object sender, EventArgs e) 
     { 
      // ... 
      var routeData = new RouteData(); 
      routeData.Values.Add("controller", "Home"); 
      routeData.Values.Add("action", "Error"); 

      IController controller = new Controllers.HomeController(); 
      controller.Execute(new RequestContext(new HttpContextWrapper(Context), routeData)); 

     } 

, как я могу добавить параметр в методе Action/RouteData? Я хотел бы показать сообщение об исключении пользователю.

+0

Почему вы хотите, чтобы вызвать метод контроллера по ошибке, вместо того, чтобы позвонить в службу или бизнес-логику от ошибки приложения? –

+0

Вы хотите обработать ошибку и вернуть представление непосредственно из global.asax? – Muflix

+0

Что именно вы хотите сделать с блоком ошибок приложения, хотите зарегистрировать ошибку или сделать запрос базы данных на ошибку журнала? –

ответ

2

У меня есть это цифра,

routeData.Values.Add("message", exception.Message); 

и в действии просто поймать этот параметр

public ActionResult Index(string message) 
1

Чтобы отобразить страницу пользовательских ошибок, вам необходимо изменить web.config.

<system.web> <customErrors mode="On" defaultRedirect="~/Error"> <error redirect="~/Error/NotFound" statusCode="404" /> </customErrors> </system.web>

Вы можете создать страницы ошибок для различных кодов состояния.

Убедитесь, что у вас есть контроллер и метод действий для возврата.

После Application_error MVC он сам перенаправляется на ту же страницу, что и в web.config.

Для получения дополнительной информации, пожалуйста, обратитесь к этому link.

+0

В этом случае, как я могу получить доступ к исключению ошибки в действии? – Muflix

+0

Исключение будет доступно на уровне Application_error, а .net будет перенаправлено на действие, описанное в файле конфигурации. Действие должно только возвращать вид –

+0

, но как я могу отобразить описание ошибки (сообщение об исключении) в представлении? – Muflix

 Смежные вопросы

  • Нет связанных вопросов^_^