gpt4 book ai didi

asp.net-mvc - 如何在 ASP.NET MVC 中构建没有 ViewContext 的路由?

转载 作者:行者123 更新时间:2023-12-02 09:44:21 25 4
gpt4 key购买 nike

我想从无法访问 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"});

注意:RequestContest 的类型为 System.Web.Routing.RequestContext 而不是 HttpContext

最佳答案

试试这个:

var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext);
var urlHelper = new UrlHelper(requestContext, new RouteData()));

希望这有帮助

更新:

前面的内容不正确(我是根据内存发布的)。试试这个(它适用于我的一个项目):

var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext, new RouteData());
var urlHelper = new UrlHelper(requestContext);

new RouteData() 仅用于 RequestContext 初始化,而 new UrlHelper(requestContext) 实际上调用 new UrlHelper(requestContext ,RouteTable.Routes)

关于asp.net-mvc - 如何在 ASP.NET MVC 中构建没有 ViewContext 的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/724153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com