如何使用URL Routing 進行URL重寫

2022-02-05 23:32:16 字數 3029 閱讀 2783

什麼是url routing?

所謂url routing(url路由),指的是在web中,url指向的不再是某個物理檔案,而是乙個說明有關url路由的字串,開發者可以自定義該字串的格式。在預設情況下,url routing在asp.net應用程式中是可以直接使用的,但在asp.net站點上,需要做一些配置才能使用。

為什麼要使用url routing?

在使用url routing前,我們的url可能是使用url routing後,我們的url可以變成修改後的url更加友好,更有利於seo。至於其它目的嘛,在使用過程中再慢慢挖掘吧。

url routing只能在mvc中才能使用嗎?

路由程式集(system.web.routing.dll)在.net framework v3.5 sp1中就包含了,而mvc是在之後才發布的。因此不能說url routing只能在mvc中才能使用。不過在mvc中增加了routing在一些擴充套件方法(包含在system.web.mvc的routecollectionextemsion

類中),使用起來更加方便。

下面簡單介紹下如何在web form中使用url routing。

1. 新增對程式集system.web.abstractions.dll,system.web.routing.dll的引用

2. 新增乙個iroutehandler的實現類customroutehanlder 

3. 配置web.config檔案

4. 在global.asax頁面中註冊路由表

4.1 新增命名空間引用    

1@ import namespace="

system.web.routing

"%>

global.asax

1void

object

sender, eventargs e) 25

6void

registerroutes(routecollection routes)

74.3 如何設定url routing引數

1void

registerroutes(routecollection routes)2"

, new

customroutehandler(

"~/webform2.aspx

")));4}

4.4 如何設定url routing引數的黙認值

global.asax

1void

registerroutes(routecollection routes)2"

, new

routevaluedictionary  }, 

newcustomroutehandler(

"~/webform3.aspx

")));4}

4.5 如何在路由目標頁面使用url裡的引數

4.5.1 修改自定義類customroutehanlder 

}4.5.2 在路由目標頁面中讀取url引數

this

.context.items[

"action"] 

%>

4.6 如何為url引數新增約束(使用正規表示式驗證)

global.asax

1void

registerroutes(routecollection routes)2"

, new

routevaluedictionary  }, 

newroutevaluedictionary 

"} }, 

newcustomroutehandler(

"~/webform4.aspx

")));4}

如**所示,要求action引數值必須是4個任意字元,若action引數長度不等於4個字元,則會得到「無法找到資源」的錯誤提示。如:」\d「只能是4位數字

剛進公司,如何優雅的使用git?

我們在自己的工作目錄新建乙個資料夾project,用來存放我們的專案。ssh方式,可以免密登入,git拉取 和提交分支都可以免密,但是要去git 上配置ssh key,新增自己生產的公鑰。以next分支為例,git位址為https方式為例,方便講解。開啟之前建好的project資料夾,右鍵選擇git...

如何才能使用apt get使用本地安裝源進行安裝

下面是如何讓apt get使用本地deb檔案的步驟 第一步 將你所有的deb檔案放在同乙個目錄內,如 mkdir var debs 第二步 使用dpkg scanpackages 命令生成apt可以使用的軟體包索引檔案 var dpkg scanpackages debs dev null gzip...

WPF使用IDataErrorInfo進行資料校驗

原文 wpf使用idataerrorinfo進行資料校驗 這篇部落格將介紹如何使用idataerrorinfo進行資料校驗。下面直接看例子。乙個customer類,兩個屬性 firstname,age class customer public intage 將customer類繼承idataerr...