从global.asax访问RequestContext

Chr*_*sen 11 model-view-controller

有谁知道如何从global.asax中的Application_Error事件获取当前的RequestContext?我的问题是我需要进行重定向,因此需要使用UrlHelper生成url - 它采用前面提到的RequestContext.

小智 11

虽然没有直接访问RequestContext的方法,但您可以自己创建一个:

RequestContext context = new RequestContext(new HttpContextWrapper(HttpContext.Current), RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current)))
Run Code Online (Sandbox Code Playgroud)

所以UrlHelper可以通过以下方式构建:

UrlHelper helper = new UrlHelper(new RequestContext(new HttpContextWrapper(HttpContext.Current), RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current))));
Run Code Online (Sandbox Code Playgroud)

不漂亮,但它完成了工作.


Med*_*kal 7

您可以使用访问请求上下文

HttpContext.Current.Request.RequestContext
Run Code Online (Sandbox Code Playgroud)

或者,如果你在Global.asax你可以使用

Context.Request.RequestContext
Run Code Online (Sandbox Code Playgroud)

直.