• 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);

  • 相关阅读:
    AOP 相关包
    Dubbo学习(一) Dubbo原理浅析
    maven 三个仓库表
    关于servlet中doGet和doPost乱码再一次理解
    关于对String中intern方法的理解
    模拟文件上传(五):为文件添加描述信息
    模拟文件上传(四):对于前面三版中一些出错细节进行处理
    对于模拟文件上传(三)中,批量上传,传空值抛异常前台约束实现
    模拟文件上传(三):使用apache fileupload组件进行文件批量上传
    模拟文件上传(二):使用apache fileupload组件进行文件上传
  • 原文地址:https://www.cnblogs.com/aphason/p/3930263.html
Copyright © 2020-2023  润新知