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

Asp.net web form url route使用总结的更多相关文章

  1. ASP.NET Web Form和MVC中防止F5刷新引起的重复提交问题

    转载 http://www.cnblogs.com/hiteddy/archive/2012/03/29/Prevent_Resubmit_When_Refresh_Reload_In_ASP_NET ...

  2. 在asp.net web form项目中添加webapi接口

    我有一个支付宝服务网关是ASP.NET WEB FORM项目,但是最近这个网关需要对外提供几个接口,想了下,使用web api比较合适,实现很简单,GO 1,首先添加一个文件夹名字叫App_Start ...

  3. 添加asp.net mvc到现有的asp.net web form 应用程序

    前言 asp.net mvc的前一版本为asp.net web Form(Asp.net mvc之前称为asp.net),其第一个版本与2002年年初发布.asp.net web form 属于.ne ...

  4. ASP.Net Web Form<一> aspx文件编译及呈现

    对比复习下JSP 1.jsp的本质是Servlet ,会在第一次被访问时会被翻译成一个类文件,从此对这个页面的访问都是由这个类文件执行后进行输出. aspx 本质是IHttpHandler 2.jsp ...

  5. 关于asp.net web form 和 asp.net mvc 的区别

    asp.net web forms 有什么缺陷? 1.视图状态臃肿:服务器和客户端传输过程中包含了大量的试图状态——在现在的web程序中甚至多达几百kb,而且每次往返都会请求,导致服务器请求带宽增加, ...

  6. ASP.NET Web API实践系列01,以ASP.NET Web Form方式寄宿

    创建一个空的ASP.NET Web Form项目. 右键项目,添加新项,创建Web API控制器类,TestController. 删除掉TestController默认的内容,编写如下: using ...

  7. ASP.NET(Web Form)绘制图表 -- Google Chart 三部曲

    ASP.NET(Web Form)绘制图表 -- Google Chart 三部曲 ASP.NET(Web Form)绘制图表 -- Google Chart 三部曲 1.  网页绘制图表 Googl ...

  8. ASP.NET MVC与ASP.NET Web Form简单区别与适用场景

    概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET MVC.下面简单说明各自优缺点及使用场景. Web Form 优点: 1.支持丰富的服务器控件.如:Gr ...

  9. 转载ASP.NET MVC 和ASP.NET Web Form简单区别

    转载原地址 http://www.cnblogs.com/lei2007/p/3315431.html 概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET  ...

随机推荐

  1. PHP与memcache安装使用说明

    最近网站流量上来后,数据库连接数一直偏高,分析了下,都是正常请求,只是网站功能分的细,单页面数据库查询句偏多了,很多数据是没必要实时查询,缓存起来就可以的!考虑必须用memcache缓存了,减轻mys ...

  2. POJ 2010 Moo University - Financial Aid treap

    按第一关键字排序后枚举中位数,就变成了判断“左边前K小的和 + 这个中位数 + 右边前K小的和 <= F",其中维护前K小和可以用treap做到. #include <cstdi ...

  3. 手势估计- Hand Pose Estimation

    http://blog.csdn.net/myarrow/article/details/51933651 1. 目前进展 1.1 相关资料      1)HANDS CVPR 2016      2 ...

  4. js判断字符串中是否含有指定汉语

    核心代码: function haveChinese(str,c){ if(escape(str).indexOf(escape(c))!=-1){ retrun true; } return fal ...

  5. PBX220 测评一

    //纯粹个人看法,可能包含非常不恰当的主观看法,敬请见谅. 本次测试的是易用科技Speedytel 新出的产品 PBX-220.      测试环境为:华硕EeePC(IE7).Eyebeam. 先来 ...

  6. ExtJS入门实例

    一.去官网下载EXTJS包extjs5,这里采用的是5.0版本! 二.解压extjs包,找到 ext-all.js基础包(\ext-5.0.0\build): ext-all-debug.js基础包, ...

  7. 远程访问MySQL遇到的一些问题

    一.access deny GRANT ALL PRIVILEGES ON *.* TO '用户名'@'IP地址' IDENTIFIED BY '密码' with grant option;

  8. 将你的代码上传 Bintray 仓库(转)

    转自:http://www.cnblogs.com/cpacm/p/5548241.html 在 Android Studio 中,我们通常可以利用 gradle 来导入别人写的第三方库,通常可以简单 ...

  9. access查询优化

    一个zirancun 14万数据量,一个 zirancuntd 19万数据,这两个  zirancuntd.distid 与zirancun.id进行关联,查询 zirancuntd.distid不存 ...

  10. XML解析工具类

    public class XmlUtil { /* * 利用dom4j解析xml文件内容,并返回map数据形式 * path是.xml文件所在的路径 */ public static Map<S ...