首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

System.Web.Routing 入門與進階(下):路由預設值、正則約束與進階匹配實戰

     編輯:關於ASP.NET

進階路由規則包含預設值與正則約束設定。

預期效果

  • /a/b.aspx → Default.aspx?category=a&action=b 顯示 category:a, action:b
  • /chsword/xxxx.aspx → Default.aspx?category=chsword&action=xxxx
  • /chsword/ → Default.aspx?category=chsword&action=index(預設值生效)

路由註冊代碼

routes.Add("Default",
  new Route("{category}/{action}.aspx",
    new RouteValueDictionary(new {
      file = "Default",
      category = "home",
      action = "index"
    }),
    new MyRouteHandler()
  )
);

IRouteHandler 處理邏輯

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() : ""
));

Default.aspx 以 Request.Params["category"]、Request.Params["action"] 顯示參數。IIS 設定預設文件為 Index.aspx 時,/chsword/ 自動補全為 /chsword/index.aspx,觸發路由預設值機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved