当前位置 > 首页 > Asp.net

asp.net路由配置2

9/10/2012 3:32:00 PM来源:Asp.net

1:现在Application_start中注册您写的路由模式代码如下:
   void Application_Start(object sender, EventArgs e)
        {
             //注册所有的您设置的所有的路由规则,以便请求相应路径时去对应相应的规则,RouteTable类存储了所有规则的URL的路径,
            //RouteTable.Routes的是一个集合RouteCollection,存储了所有的用户定义的路由规则,写在Application_Start方法中的原因是将所有的路由规则注册到程序中
            RegisterRoutes(RouteTable.Routes);

        }


  public static void RegisterRoutes(RouteCollection routes)
        {
            //添加一个路由到程序中
            //new Route("{page}.aspx", new MyRouteHandler())d的解析,"{page}.aspx",第一个参数是请求的路径,第二个参数是怎么样去处理这个请求。
            //在这里是用MyRouteHandler去处理这个路由请求
          

            //添加另一个路由
            routes.Add("Default",
                new Route("{category}/{action}.aspx",
                          new RouteValueDictionary(
                              new
                                  {
                                      file = "Default",
                                      category = "home",
                                      action = "index"
                                  }), new MyRouteHandler()//这里定义一个routeHandler,要用这个handler去出来的的请求路径
                    )
                );
           
        }
2:定义一个RouteHandler来处理上面的请求路径
  public class MyRouteHandler : IRouteHandler
    {
        #region IRouteHandler 成员
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            //返回一个请求的对象(IHttpHander),即请求的页面对象,在MyPage中得到当前请求对象信息,并处理请求路劲。
            return new MyPage(requestContext);
        }
        #endregion

    }
3:定义一个IHttpHandler的实现对象MyPage
   public class MyPage : IHttpHandler
    {

        public RequestContext RequestContext { get; set; }

        public MyPage(RequestContext context)
        {
            this.RequestContext = context;
        }

        #region IHttpHandler 成员

        //处理请求的url方法,也就是去替换请求路径当中的相应的参数
        public virtual void ProcessRequest(HttpContext context)
        {
           
            context.Server.Execute(string.Format("/{0}.aspx?category={1}&action={2}",
              RequestContext.RouteData.Values.ContainsKey("file")
                ? RequestContext.RouteData.Values["file"].ToString()
                : "default",
              RequestContext.RouteData.Values.ContainsKey("category")
                ? RequestContext.RouteData.Values["category"].ToString()
                : "",
              RequestContext.RouteData.Values.ContainsKey("action")
                ? RequestContext.RouteData.Values["action"].ToString()
                : "")
                );

        }

        public bool IsReusable
        {
            get {


  • 基于ASP.NET MVC3 Razor的模块化/插件式架构实现

    6/3/2012 8:45:00 PM

    本文主要探讨了一种 基于ASP.NET MVC3 Razor的模块化(Plugin)/插件(plugin)式架构的实现 方法。本文借鉴了《 Compile your asp.net mvc Razo

  • Create a Login Screen in Silverlight 3

    10/30/2009 6:52:00 AM

    After my last blog post on “Create a Login Window in WPF”, I had a lot of requests for how to creat

  • C# 4.0: Alternative To Optional Arguments

    4/20/2010 7:39:00 AM

    Like I mentioned in my last post , exposing publicly methods with optional arguments is a bad prac

  • WPF学习小结

    3/9/2007 4:45:00 PM

    摘要: 今天开始WPF的学习,分析了一下Windows SDK 里面的Sample——DataBindingLab 该解决方案示意图为:这个Sample是个在线拍卖的实例,其中DataBinding

  • 微软的Ajax库客户端Bug总结

    4/8/2007 10:03:00 AM

    已经用微软的Ajax库做了几个比较成功的项目,在这过程中也发现了Ajax库的一些错误,今天把它们都一一列出来,给大家一个参考。在项目中使用到的主要是Xml-script的功能,这个功能在早期的Atl

  • 日期处理datetime和date之间的相互转换

    2/2/2007 6:08:00 PM

    摘要: 日期是数据处理中经常使用到的信息之一。生日、数据处理时间、计划的预计完成时间,按年、季、月的统计,这些都属于日期处理的范畴。由于日期中包含了年、季、月、日等众多信息,不同的国家对日期格式、日

  • 求“table固定多层表头”所遇问题的解答!

    2/5/2009 5:25:00 PM

    摘要: 这两天忙于table固定多层表头的实现,实现过程中有一个问题困扰了我很久还没有解决,现把问题贴出来,如果哪位博友知道解决方法的话麻烦指点一下,先谢谢了!(由于急于解决问题,先暂放首页,请du

  • C#3.0实现突变赋值(Mutantic Assignment)

    4/20/2009 2:12:00 PM

    摘要: 突变赋值让代码简洁优雅,可惜现在C#还没有对突变赋值运算符的支持,本文尝试在C#3.0中用扩展方法模拟突变赋值功能。 阅读全文 -------------------------- 新

  • 使用UI Automation实现自动化测试--4.8 (GridPattern)

    9/24/2009 5:14:00 PM

    摘要: GridPattern支持GridPattern的最常见的控件为GridView, 在WPF中使用ListView和GridView组合即可得到相应的GridView。GridPattern

  • Beware: Upgrade to ASP.NET MVC 2.0 with care if you use AntiForgeryToken

    3/22/2010 3:58:00 PM

    If youre thinking of upgrading to MVC 2.0, and you take advantage of the AntiForgeryToken support t