我需要在视图模型中使用System.Web.Routing.RequestContext才能调用
HtmlHelper.GenerateLink().
在MVC 1.0中,可以通过强制转换当前的IHttpHandler来静态获取上下文:
var context = ((MvcHandler) HttpContext.Current.CurrentHandler).RequestContext;
现在该项目已升级到MVC 2.0,并且抛出了此异常:
Unable to cast object of type ‘ServerExecuteHttpHandlerWrapper’ to type ‘System.Web.Mvc.MvcHandler’.
我不确定它是否相关,但这是在IIS6上的.NET 4.0中运行的.
解决方法
我不知道你想用System.Web.Routing.RequestContext做什么?查看:
var context = new HttpContextWrapper(System.Web.HttpContext.Current); var routeData = RouteTable.Routes.GetRouteData(context); // Use RouteData directly: var controller = routeData.Values["controller"]; // Or with via your RequestContext: var requestContext = new RequestContext(context,routeData); controller = requestContext.RouteData.Values["controller"]