2010-12-30 22 views
5

Sınıf kitaplığından ViewContext erişmek mümkün mü? Mevcut View ve Controller'in eylemlerinin isimlerini almam gerekiyor. Sınıf kitaplığı projemde hem System.Web.dll hem de System.Web.Mvc ekledim ancak yine de istediğimi elde etmenin bir yolunu bulamıyorum. Geçerli bağlama System.Web.HttpContext.Current kullanarak erişebiliyorum.Sınıf kitaplığından ViewContext'e erişme

+1

Statik bağlamdan bunu nasıl merak ediyorsunuz? Tam olarak ne elde etmeye çalışıyorsun? Bu kötü bir tasarım gibi görünüyor. – TheCloudlessSky

+0

Aslında, otomatik denetim takibi için nhibernate olayları ve hangi görünüm ve form kaydının oluşturulduğu veya düzenlendiği konusunda neye ve neye ihtiyaç duyduğumu değiştiren kişiler gibi bu ayrıntılar için kullanıyorum. Böylece denetim izi satırında Görünüm | Eylem | KullanıcıAdı | DateChanged gibi bir şey olacaktır. Ve evet bu nhibernate kodu bir sepearate dll içine yerleştirilir – Waqas

cevap

9

Böyle şimdiki rota bilgilerine erişebilir:

var httpContext = new HttpContextWrapper(HttpContext.Current); 
var routeData = System.Web.Routing.RouteTable.Routes.GetRouteData(httpContext); 

var controllerName = routeData.Values["controller"].ToString(); 
var actionName = routeData.Values["action"].ToString(); 
+2

Bu cevaba gelen benim gibi herkes için şu anda doğrudan routedata erişebilirsiniz: 'HttpContext.Current.Request.RequestContext.RouteData.Values ​​["controller"] '' Yukarıdaki şekilde – Pete

+0

'HttpContext.Current.Request.RequestContext.RouteData.Values ​​[‌" controller "]' i yapmaktan daha doğru gibi görünmektedir, yaklaşım statik sınıfta çalışmaz. – Muflix

İlgili konular