gpt4 book ai didi

.net - 如何从 App_Code 中的类使用 Control.GetRouteUrl

转载 作者:行者123 更新时间:2023-12-04 17:40:10 26 4
gpt4 key购买 nike

我在 asp.net web 表单 4.0 中使用路由并取得了一些成功。在我的页面中,我使用 Page.GetRouteURL 来生成这样的路由。

<a href = '<%=GetRouteUrl("MyRoute", new {MyFirstRouteValue = "ABC", MySecondRouteValue=123}) #>' >Link Text</a>

这非常有效,但我发现有时我需要在 app_code 的类中使用此功能。我可以使用 String.Format 手动构建路由,但这有点草率,因为它会复制 Global.asax 中定义路由的代码。

当然,App_Code的类中没有Page对象,所以不能直接调用GetRouteUrl。抬头看 docs on msdn我看到一些看起来很有帮助的东西。

This method is provided for coding convenience. It is equivalent to calling the RouteCollection.GetVirtualPath(RequestContext, String, RouteValueDictionary) method.



所以我按照文档到 this page其中指出 System.Web.Routing.GetVirtualPath() 需要一个 System.Web.Routing.RequestContext 对象。我知道 HttpContext 对象,但我不知道 RequestContext 是什么。有没有人有这方面的运气?

最佳答案

RequestContext可用作 a property到 HttpRequest 对象,因此您可以将其引用为 HttpContext.Current.Request.RequestContext .例如,

public string GetRouteUrl(string routeName, object routeParameters)
{
var dict = new RouteValueDictionary(routeParameters);
var data = RouteTable.Routes.GetVirtualPath(HttpContext.Current.Request.RequestContext, routeName, dict );
if (data != null)
{
return data.VirtualPath;
}
return null;
}

关于.net - 如何从 App_Code 中的类使用 Control.GetRouteUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942018/

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