HTML.Actionlink("About us","about","home");
但是如果你想在Webforms中生成Urls呢?
我没有找到关于使用Webforms生成URL的详细信息.
例如,如果我正在生成这样的路线:
Route r = new Route("{country}/{lang}/articles/{ID}/{Title}",new ArticleRouteHandler("~/Forms/Article.aspx"));Route r2 = new Route("{country}/{lang}/articles/",new ArticleRouteHandler("~/Forms/ArticlesList.aspx"));Routes.Add(r);Routes.Add(r2);
如何使用路由表数据生成URL.
如何根据我的路线生成URL?
例如. / ca / en / articles / 123 /文章标题没有
解决方法 正如您所说,ASP.NET MVC为您提供了一组帮助方法来“反向查找”Routetable并为您生成URL.我还没玩过这么多,但据我所知,你需要在RouteCollection上调用GetVirtualPath方法(很可能是Routetable.Routes).所以类似于:Dim routedurl = Routetable.Routes.GetVirtualPath(context,rvd).VirtualPath
您需要传递RequestContext和RouteValueDictionary. RouteValueDictionary包含路由参数(所以在你的情况下类似于=“UK”,lang =“EN-GB”等.棘手的部分是RequestContext,因为它不是普通httpContext的一部分.你可以将它推入您的IRouteHandler中的httpContext:
requestContext.httpContext.Items("RequestContext") = requestContext
然后在需要时在IhttpHandler(aspx页面)中再次恢复它:
Dim rvd = New RouteValueDictionary(New With {.country = "UK",.lang = "EN-GB"})Dim routedurl = Routetable.Routes.GetVirtualPath(context.Items("RequestContext"),rvd).VirtualPath
在VB中回应C#问题的道歉,只是我必须提供的ASP.NET路由站点是在VB.NET中.
总结以上是内存溢出为你收集整理的c# – 在Webforms中生成带URL路由的URL全部内容,希望文章能够帮你解决c# – 在Webforms中生成带URL路由的URL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)