2009-03-30 25 views
11

Geçerli RequestContext'i global.asax dosyasındaki Application_Error olayından nasıl alacağını bilen var mı? Benim sorunum bir yönlendirme yapmak ve bu nedenle UrlHelper kullanılarak oluşturulan url sahip olması gerekir - ki yukarıda belirtilen RequestContext alır. Yani UrlHelper yoluyla yapılabilirGlobal.asax adresinden RequestContext'e erişme

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

: RequestContext erişmenin doğrudan bir yolu olmasa da

+1

Bu cevap size yardımcı olur mu? http://stackoverflow.com/a/2032154/330606 –

cevap

11

, bir tane kendini oluşturabilir

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

hoş değildi, ama alır iş bitmiş.

+0

RequestContext'e erişebilirsiniz, lütfen cevabıma bakın. –

0

oluştur bir HttpContextBase Güncel HttpContext ve bir UrlHelper üretebilirsiniz bundan: Eğer iseniz

// 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

Sen

HttpContext.Current.Request.RequestContext 

kullanarak istek bağlamına erişmeye Ya edebilirsiniz Global.asax, doğrudan,

Context.Request.RequestContext 

'u kullanabilirsiniz.