zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
    ant例子
    poj 3744 概率dp+矩阵快速幂
    hdu 4284 状态压缩dp
    hdu 4276 树形dp
    hdu 3586 树形dp+二分
    hdu 3001 三进制状压
    hdu 1561 树形dp+分组背包
    hdu 2196 树形dp
    poj 1485 dp
  • 原文地址:https://www.cnblogs.com/aphason/p/3930263.html
Copyright © 2011-2022 走看看