c# – 从MVC 2.0中的静态上下文访问System.Web.Routing.RequestContext

前端之家收集整理的这篇文章主要介绍了c# – 从MVC 2.0中的静态上下文访问System.Web.Routing.RequestContext前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在视图模型中使用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"]

猜你在找的C#相关文章