Asp.net-Mvc

如何使用 global.asax 中的參數創建控制器對象並執行操作

  • February 9, 2017

我有這個程式碼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 ?我想向使用者顯示異常消息。

我已經想通了,

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

並在行動中抓住那個參數

public ActionResult Index(string message)

要顯示自定義錯誤頁面,您需要更改 web.config。

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

您可以為不同的狀態程式碼創建錯誤頁面。

確保您有控制器和操作方法來返回視圖。

在 Application_error MVC 之後,它自己將重定向到 web.config 中描述的同一頁面。

請參閱此連結以獲取更多資訊。

引用自:https://stackoverflow.com/questions/41469359