当前位置: 首页 > 编程语言 > C#

在Webforms中使用URL路由生成URL共享

时间:2023-04-10 10:55:34 C#

在Webforms中使用URL路由生成URL我知道在MVC框架中,你有Html类来创建URL:Html.ActionLink("Aboutus","about",“家”);但是如果你想在Webforms中生成Urls怎么办?我没有找到有关使用Webforms生成URL的任何详细信息。例如,如果我生成这样的路线:Router=newRoute("{country}/{lang}/articles/{id}/{title}",newArticleRouteHandler("~/Forms/Article.aspx"));Router2=newRoute("{country}/{lang}/articles/",newArticleRouteHandler("~/Forms/ArticlesList.aspx"));路线.Add(r);路线.Add(r2);如何使用路由表数据生成URL。如何根据我的路线生成URL?例如。/ca/en/articles/123/articletitleno正如您所说,ASP.NETMVC为您提供了一组辅助方法来“反向查找”RouteTable并为您生成URL。我没有玩过这么多,但据我所知,您需要调用RouteCollection(很可能是RouteTable.Routes)上的GetVirtualPath方法。所以类似于:Dimroutedurl=RouteTable.Routes.GetVirtualPath(context,rvd).VirtualPath您需要传递RequestContext和RouteValueDictionary。RouteValueDictionary包含路由参数(因此在您的情况下类似于county="UK"、lang="EN-GB"等。棘手的部分是RequestContext,因为它不是普通HttpContext的一部分。您可以将其推入IRouteHandler中的HttpContext:requestContext.HttpContext.Items("RequestContext")=requestContext,然后在需要时在IHttpHandler(aspx页面)中再次恢复它:Dimrvd=NewRouteValueDictionary(NewWith{.country="UK",.lang="EN-GB"})Dimroutedurl=RouteTable.Routes.GetVirtualPath(context.Items("RequestContext"),rvd).VirtualPath很抱歉在VB中回答C#问题,只是我必须提供ASP.NET路由站点是在VB.NET中。谢谢您的回答。补充一下,这就是我所做的:在Global.asaxRouteValueDictionaryrvdSiteDefaults=newRouteValueDictionary{{"country","ca"},{"lang","en"}};RouteoneArticle=newRoute("{country}/{lang}/articles/a{id}/{title}",rvdSiteDefaults,rvdConstrainID,newArticleRouteHandler("~/Articles/Details.aspx"));Routes.Add("文章",oneArticle);CreateUrlfromArticleobjectpublicstaticstringCreateUrl(Articlea){//注意,Article来自Database,具有ArticleID、Title等属性,RouteValueDictionary参数;stringrouteName="文章";//在Global.asax中设置parameters=newRouteValueDictionary{{"id",a.ArticleID},{"title",a.Title.CleanUrl()}};CleanUrl()返回URL友好名称。VirtualPathDatavpd=RouteTable.Routes.GetVirtualPath(null,routeName,parameters);字符串url=vpd.VirtualPath;返回网址;//例如。/ca/en/1/The-Article-Title}甜甜!超链接hl=newHyperlink();hl.Text="点击此处";hl.NavigateUrl="~/Forms/Article.aspx";主要是AnyControl.Controls.Add(HL);至于将其放入列表中...(1)循环/迭代,或(2)LinqtoXML。以上就是C#学习教程:GeneratingURLsharingwithURLroutinginWebforms的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: