2010-12-30 12 views
5

¿Es posible acceder a ViewContext desde la biblioteca de clases? Estoy en la necesidad de obtener los nombres de la Vista actual y la acción del Controlador. Agregué System.Web.dll y System.Web.Mvc en mi proyecto de biblioteca de clase, pero todavía no puedo encontrar la forma de obtener lo que necesito. Aunque puedo acceder al contexto actual usando System.Web.HttpContext.Current.Acceso a ViewContext desde la biblioteca de clases

+1

Se está preguntando cómo hacer esto desde un contexto estático? ¿Qué estás tratando de lograr exactamente? Esto parece un mal diseño. – TheCloudlessSky

+0

en realidad estoy usando eventos nhibernate para seguimiento de auditoría automático y para este detalle detalles como quién cambió qué y cuándo también estoy en la necesidad de detalles sobre en qué vista o registro de formulario se creó o editó. Entonces, en la fila de seguimiento de auditoría se verá algo así como Ver | Acción | Nombre de usuario | FechaCambio. Y sí, este código nhibernate se coloca dentro de un dll sepearate – Waqas

Respuesta

9

Se puede acceder a información de la ruta actual de la siguiente manera:

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

. Para cualquiera que como yo llegue a esta respuesta, ahora puede acceder a los datos de ruta directamente desde el contexto: 'HttpContext.Current.Request.RequestContext.RouteData.Values ​​[" controller "]' parece ser más preciso que hacerlo con el método anterior – Pete

+0

El enfoque 'HttpContext.Current.Request.RequestContext.RouteData.Values ​​[" controller "]' no funciona en la clase estática. – Muflix

Cuestiones relacionadas