如何使用 global.asax 中的参数创建控制器对象并执行操作

How to create controller object and execute action with parameter from 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 添加参数?我想向用户显示异常消息。

要显示自定义错误页面,您需要更改 web.config。

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

您可以为不同的状态代码创建错误页面。

确保您有 return 视图的控制器和操作方法。

在 Application_error MVC 之后,它自己将重定向到 web.config 中描述的同一页面。

请参阅此link了解更多信息。

我已经弄明白了,

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

并且在操作中只捕获该参数

public ActionResult Index(string message)