ASP.NET WebForm URL rewrite in VS20

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 06:08 点击:

在C#2.0时期,要把 /Farm.aspx?farmid=1映射成/farm/1,需要借助IISRewriter或者其它第三方组件,也可以自己用代码定义路由规则,要修改web.config,甚至要写正则表达式去匹配规则,总之是一件比较麻烦的事情。有了VS2010,asp.net4.0中asp.net mvc中的路由规则全部可以用于webform了,这个功能实现起来也变得非常容易。

在VS2010平台下,URL重写变得容易很多。

首先在Globle文件中自定义路由规则,如下:

view plain
void Application_Start(object sender, EventArgs e) 

    // Code that runs on application startup 
    RegisterRoutes(RouteTable.Routes); 

view plain
/// <summary> 
/// 自定义路由规则 
/// </summary> 
/// <param name="routes"></param> 
/// 参数含义: 
/// 第一个参数:路由名称 
/// 第二个参数:路由规则 
/// 第三个参数:该路由规则交给哪一个页面来处理        
void RegisterRoutes(RouteCollection routes) 

    routes.MapPageRoute("farm-browse", "farms/{farmid}", "~/Farm.aspx"); 

然后在指定的处理页面中接收参数,即在Farm.aspx中处理,如下:

view plain
protected int FarmId 

    get 
    { 
        int id; 
 
        int.TryParse(Page.RouteData.Values["farmid"].ToString(), out id); 
 
        return id; 
    } 

以上两步就完成URL重定向的功能。

ASPX页面中,直接使用路由规则即可,如下:

view plain
<ul> 
    <% using (ASPNETDBEntities db = new ASPNETDBEntities()) 
       { 
           var farms = db.Farms.OrderByDescending(f => f.DateCreated).Take(10); 
           if (farms != null && farms.Count() > 0) 
           { 
               foreach (var farm in farms) 
               { 
    %> 
    <li><a href="<strong>..</strong>/farms/<%= farm.FarmId %>"> 
        <%= farm.FarmTitle %></a><br /> 
        <%= farm.DateCreated.ToString("yyyy-MM-dd") %></li> 
    <%} 
           } 
       } %> 
</ul> 

作者“Keep It Short And Simple”

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 浅析.NET下XML数据访问新机制
      • asp.net 面试+笔试题目第1/2页
      • C# 邮件地址是否合法的验证
      • C#高级编程:数据库连接[1]
      • asp.net 设置GridView的选中行的实现代码
      • 经典C++程序1
      • IIS 自动回收导致后台定时器失效的问题解决
      • ASP.NET&#160;GridView列表代码示例
      • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1