如何使用 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)
我在 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)