程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> System.Web.Routing入門及進階(下)

System.Web.Routing入門及進階(下)

編輯:關於ASP.NET

上面介紹的是最簡單的一種定義方式。當然我們可以建立更復雜的規則。其中就包括設定規則的默認值以及設定規則的正則表達式。

UrlRouting高級應用

預計效果:

當我訪問/a/b.aspx時就會轉到Default.aspx?category=a&action=b在頁面上顯示

category:a

action:b

亦如果我訪問/chsword/xxxx.aspx就會轉到Default.aspx?category=chsword&action=xxxx就會顯示

category:chsword

action:xxxx

如果訪問/chsword/就會轉到 Default.aspx?category=chsword&action=index就會顯示

category:chsword

action:index

首先我建立一個Route

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

當然IHttpHandler的處理方式也要有所改變

為了方便查看我使用了下方法:

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

即/a/b.aspx是映射到Default.aspx?category=a&action=b

在Default.aspx中寫如下代碼:

category:<%=Request.Params["category"]%><br/>

action:<%=Request.Params["action"]%>

以顯示傳入的參數。

如果在IIS中設置Index.aspx時就算輸入/a/也會訪問到/a/index.aspx,即默認的會按RouteValueDictionary中設置的值自動補全

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved