C# 从类库访问ViewContext

C# 从类库访问ViewContext,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,是否可以从类库访问ViewContext?我需要获得当前视图和控制器操作的名称。我在我的类库项目中添加了System.Web.dll和System.Web.Mvc,但仍然找不到一种方法来获得我需要的东西。 虽然我可以使用System.Web.HttpContext.current访问当前上下文,但您可以像这样访问当前路由信息: var httpContext = new HttpContextWrapper(HttpContext.Current); var routeData = System

是否可以从类库访问
ViewContext
?我需要获得当前视图和控制器操作的名称。我在我的类库项目中添加了
System.Web.dll
System.Web.Mvc
,但仍然找不到一种方法来获得我需要的东西。
虽然我可以使用
System.Web.HttpContext.current

访问当前上下文,但您可以像这样访问当前路由信息:

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();

您是否想知道如何从静态上下文中执行此操作?你到底想达到什么目的?这似乎是一个糟糕的设计。事实上,我正在使用nhibernate事件进行自动审计跟踪,并为此提供详细信息,如谁更改了什么以及何时我还需要创建或编辑了哪些视图或表单记录的详细信息。因此,在审计跟踪行中,类似于视图|操作|用户名|日期更改。是的,这个nhibernate代码被放在一个单独的DLL中。对于像我这样的任何人,现在都可以直接从上下文访问RoutedData:
HttpContext.Current.Request.RequestContext.RoutedData.Values[“controller”]
似乎比使用上述方法更准确
HttpContext.Current.Request.RequestContext.RouteData.Values[‌​“控制器”]
方法在静态类中不起作用。