Qualcuno sa come ottenere il RequestContext corrente dall'evento Application_Error in global.asax ?? Il mio problema è che ho bisogno di fare un reindirizzamento, e quindi ho bisogno di avere l'url generato usando UrlHelper - che prende il RequestContext sopraccitato.Accesso a RequestContext da global.asax
11
A
risposta
11
Mentre non v'è alcun modo diretto di accesso al RequestContext, è possibile creare uno voi stessi:
RequestContext context = new RequestContext(new HttpContextWrapper(HttpContext.Current), RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current)))
Così l'UrlHelper può essere costruito attraverso:
UrlHelper helper = new UrlHelper(new RequestContext(new HttpContextWrapper(HttpContext.Current), RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current))));
Non abbastanza, ma ottiene il lavoro fatto.
+0
È possibile accedere a RequestContext, fare riferimento alla mia risposta. –
0
Crea un HttpContextBase dal HttpContext corrente, e da questo è possibile generare un UrlHelper:
// Create Http Context Base from current Context
var contextBase = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current);
// Get its request context
System.Web.Routing.RequestContext requestContext = contextBase.Request.RequestContext;
// Build url helper from request context
var urlHelper = new System.Web.Mvc.UrlHelper(requestContext);
7
è possibile accedere al contesto richiesta utilizzando
HttpContext.Current.Request.RequestContext
Oppure, se sei in Global.asax
è possibile utilizzare
Context.Request.RequestContext
direttamente.
questa risposta ti aiuta? http://stackoverflow.com/a/2032154/330606 –