·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> Asp.net web form url route使用总结

Asp.net web form url route使用总结

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net web form url route使用总结

asp.net web form 使用URL路由 注不是mvc中的路由

一、前台控件使用路由,通过表达式生成url地址,注意给路由参数赋值,防止使用了其他路由表达式值方式1:<asp:HyperLink ID="hlSupply" NavigateUrl='<%$RouteUrl:routename=TechSupplySearch,areacode=,techfield=%>' runat="server">技术供给</asp:HyperLink>方式2:<a href="<%=GetRouteUrl("MemberSearch",new { membertype="Commpany" ,areacode="",industrycode="",pageindex="" }) %>">科技企业</a>控件界面数据绑定中使用 <asp:Repeater ID="myGrid" ViewStateMode="Disabled" runat="server"> <ItemTemplate> <li><a target="_blank" href='<%# this.GetRouteUrl("TechSupplyView", new { id=Eval("SupplyId")}) %>' ><%# Eval("SupplyName")%></a><span><%# string.IsNullOrEmpty(Eval("cityname").ToString()) ? "&nbsp" : Eval("cityname")%></span><span><%# Eval("hightech")%></span> </li> </ItemTemplate> </asp:Repeater>url 路由分页控件:urlpager

二、服务端后台代码使用路由

1、Global.asax文件: void application_Start(object sender, EventArgs e) { //在应用程序启动时运行的代码 RegisterRoutes(RouteTable.Routes); } //注册url路由 void RegisterRoutes(RouteCollection routes) { routes.RouteExistingFiles = false; //默认不路由与物理路径一致的url:如http://localhost/MyFolder/MyPage.aspx;好处是不对静态资源文件进行路由,否则静态文件如js、CSS等会导致多次触发Page_Load事件。 //routes.Ignore("{resource}.axd/{*pathinfo}");//经实践这种方式屏蔽对静态资源文件的路由无效。 //routes.Ignore("{path}/{name}.jpg");//经实践这种方式屏蔽对静态资源文件的路由无效。 //注册路由 routes.MapPageRoute("TechNewsSearch", "TechNews/{pageindex}", "~/NewsInfo/TechNewsSearch.aspx", true, new RouteValueDictionary { { "pageindex", "1" } }, new RouteValueDictionary { { "pageindex", @"\d{1,}" } }); routes.MapPageRoute("TechSupplySearch", "Supply/{areacode}/{techfield}/{pageindex}", "~/TechSupply/TechSupplySearch.aspx", true, new RouteValueDictionary { { "areacode", "0" }, { "techfield", "0" }, { "pageindex", "1" } }, new RouteValueDictionary { { "pageindex", @"\d{1,}" } }); routes.MapPageRoute("MemberSearch", "Members/{membertype}/{areacode}/{industrycode}/{pageindex}", "~/Member/MemberSearch.aspx", true, new RouteValueDictionary { { "membertype", "0" }, { "areacode", "0" }, { "industrycode", "0" }, { "pageindex", "1" } }, new RouteValueDictionary { { "pageindex", @"\d{1,}" } });}

2、WebForm页面后台代码中使用

获取、更改路由参数值routeValue = Page.RouteData.Values["techfield"] == null ? string.Empty : Page.RouteData.Values["techfield"].ToString();//获取路由参数Page.RouteData.Values["areacode"] = selOrgan.SelectedValue;//所在地 更改路由参数Page.RouteData.Values.Remove("Over"); //移除路由参数后台代码中生成路由地址newUrl = this.GetRouteUrl("MemberSearch", Page.RouteData.Values);页面客户端跳转路由方式实现Response.RedirectToRoute("TechSupplySearch", Page.RouteData.Values);Response.RedirectToRoutePermanent("TechSupplySearch", Page.RouteData.Values);