2009-03-30 5 views
11

誰でも、現在のRequestContextをglobal.asaxのApplication_Errorイベントから取得する方法を知っていますか?私の問題は、私はリダイレクトを行う必要があるため、UrlHelperを使用してURLを生成する必要があります。これはaformentioned RequestContextを取ります。だから、UrlHelperを経由して構築することができglobal.asaxからRequestContextにアクセスする

RequestContext context = new RequestContext(new HttpContextWrapper(HttpContext.Current), RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current))) 

:RequestContextのにアクセスする直接的な方法はありませんが

+1

この回答は役に立ちますか? http://stackoverflow.com/a/2032154/330606 –

答えて

11

、あなたは1を自分で作成することができます

UrlHelper helper = new UrlHelper(new RequestContext(new HttpContextWrapper(HttpContext.Current), RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current)))); 

きれいではありませんが、それが取得します仕事が終わった。

+0

RequestContextにアクセスできます。私の答えを参照してください。 –

0

現在のHttpContextからHttpContextBaseを作成し、それから、あなたが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

あなたがいる場合は、

HttpContext.Current.Request.RequestContext 

を使用して要求コンテキストにアクセスしたりすることができますGlobal.asaxをご利用いただけます

Context.Request.RequestContext 

関連する問題