Sim*_*ver 7 asp.net-mvc routing
我想从一个无法访问ViewContext的实用程序类创建一个路由.
这可能吗?似乎没有任何相当的ViewContext.Current
我试过在Routing和HttpContext的所有构造函数中钓鱼但是不能完全达到我想要的.
这就是我正在寻找的 - 虽然这不起作用,因为RouteTable.Routes它是类型RouteCollection而不是RouteData.如此接近 - 但到目前为止:-)
RequestContext requestContext = new RequestContext(HttpContext.Current, RouteTable.Routes);
UrlHelper url = new UrlHelper(requestContext);
var urlString = url.RouteUrl(new {controller="DynamicImage", action="Button", text="Hello World"});
Run Code Online (Sandbox Code Playgroud)
注意:RequestContest的类型为System.Web.Routing.RequestContext,而不是HttpContext
eu-*_*-ne 11
试试这个:
var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext);
var urlHelper = new UrlHelper(requestContext, new RouteData()));
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
更新:
前一个是不正确的(我已经从我的记忆中发布了它).试试这个(它适用于我的一个项目):
var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext, new RouteData());
var urlHelper = new UrlHelper(requestContext);
Run Code Online (Sandbox Code Playgroud)
new RouteData()仅用于RequestContext初始化和new UrlHelper(requestContext)实际调用new UrlHelper(requestContext, RouteTable.Routes)
| 归档时间: |
|
| 查看次数: |
2677 次 |
| 最近记录: |