在Controller.OnException中获取操作和操作参数

ste*_*rnr 14 asp.net-mvc exception-handling

我们在BaseController中使用OnException虚方法来记录我们的异常.

但是,我们如何才能获得异常来源的控制器动作和参数?

Ego*_*4eg 26

您可以从ExceptionContext对象获取所有这些数据.

例如,使用此代码,您可以获取控制器,操作和所有其他路由参数:

context.RouteData.Values
Run Code Online (Sandbox Code Playgroud)

使用此代码,您可以获取查询字符串参数:

context.HttpContext.Request.QueryString
Run Code Online (Sandbox Code Playgroud)

和finnaly形式参数:

context.HttpContext.Request.Form
Run Code Online (Sandbox Code Playgroud)

  • 我的意思是,我不想要Request.Querystring\form数据,我想要它的模型形式 - 我怎么能得到它? (6认同)

arc*_*hil 17

protected override void OnException(ExceptionContext filterContext)
{
    string action = filterContext.RouteData.Values["action"].ToString();
    string controller = filterContext.RouteData.Values["controller"].ToString();
}
Run Code Online (Sandbox Code Playgroud)