国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

ASP.NET WebForms MapPageRoute 路由配置

2019-11-17 02:01:02
字體:
來源:轉載
供稿:網友

asp.net WebForms MapPageRoute 路由配置

MapPageRoute 應該是 ASP.NET 4.0 中的東西,但現(xiàn)在我是第一次使用它,使用場景是:MVC 混合使用 WebForm,然后對 WebForm 進行路由配置,當然也可以使用 ISAPI_Rewrite 3,不同的是要在 IIS 中配置,相對而言,MapPageRoute 在程序中進行配置更加靈活方便,下面是關于 MapPageRoute 的簡單整理。

1. 最簡單:

public class Mvcapplication : System.Web.HttpApplication{PRotected void Application_Start(){RouteTable.Routes.MapPageRoute("WebFormRoute","test","~/WebForm1.aspx");}}public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("hello world!");}}

效果:

2. 帶參數(shù):

public class MvcApplication : System.Web.HttpApplication{protected void Application_Start(){RouteTable.Routes.MapPageRoute("WebFormRoute","test/{para}","~/WebForm1.aspx");}}public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("hello world! <br />");Response.Write("para: " + Page.RouteData.Values["para"]);}}

效果:

注意:

當我們使用參數(shù)映射的時候,在獲取參數(shù)值使用的是 Page.RouteData.Values,而不是 Request.QueryString,有一種情況是,如果你的 Url 映射還是 WebForm1.aspx 文件名的形式,只不過這個文件地址發(fā)生了變化,這時候你就不需要在 MapPageRoute 中進行參數(shù)配置了,只需要進行 Url 和 WebForm 文件地址配置,那這樣配置,使用 Request.QueryString 可以獲取到參數(shù)值嗎?我試過是可以的,沒有了參數(shù)映射配置,也就不需要 Page.RouteData.Values 進行獲取參數(shù)值了,一種偷巧行為。

3. 帶多個參數(shù):

public class MvcApplication : System.Web.HttpApplication{protected void Application_Start(){RouteTable.Routes.MapPageRoute("WebFormRoute","test/{para1}/{para2}","~/WebForm1.aspx");}}public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("hello world! <br />");Response.Write("para1: " + Page.RouteData.Values["para1"]+ "<br />");Response.Write("para2: " + Page.RouteData.Values["para2"]+ "<br />");}}

效果:

注意:

多個參數(shù)的映射還有一種寫法是:test/{para1}&{para2},但我試過這種寫法會報錯,而在 Scott Guthrie 的一篇博文中評論回復,這種方式是可以的,如下:

4. 非正規(guī)參數(shù):

public class MvcApplication : System.Web.HttpApplication{protected void Application_Start(){RouteTable.Routes.MapPageRoute("WebFormRoute","test/{para1}/{para2}.html","~/WebForm1.aspx");}}public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("hello world! <br />");Response.Write("para1: " + Page.RouteData.Values["para1"]+ "<br />");Response.Write("para2: " + Page.RouteData.Values["para2"]+ "<br />");}}

效果:

注意:

<system.webServer><modules runAllManagedModulesForAllRequests="true" /></system.webServer>

在 MapPageRoute Url 映射的時候,使用的后綴是 .html,需要在 web.config 添加上面配置,如果使用的是 .aspx,則不需要,runAllManagedModulesForAllRequests 在之前的博文中有說過,就不重復了。

4. MapPageRoute 方法參數(shù):

//參數(shù)public Route MapPageRoute(string routeName,//路由的名稱。string routeUrl,//路由的 URL 模式。string physicalFile,//路由的物理 URL。bool checkPhysicalUrlaccess,//一個值,該值指示 ASP.NET 是否應驗證用戶是否有權訪問物理 URL(始終會檢查路由 URL)。RouteValueDictionary defaults,//路由參數(shù)的默認值。RouteValueDictionary constraints,//一些約束,URL 請求必須滿足這些約束才能作為此路由處理。RouteValueDictionary dataTokens//與路由關聯(lián)的值,但這些值不用于確定路由是否匹配 URL 模式。)public class MvcApplication : System.Web.HttpApplication{protected void Application_Start(){RouteTable.Routes.MapPageRoute("WebFormRoute","test/{para1}/{para2}/{*queryvalues}","~/WebForm1.aspx",false,null,new RouteValueDictionary { { "para1", "^[0-9]*$" }, { "para2", "^[A-Za-z]+$" } },new RouteValueDictionary { { "para3", "xishuai1" }, { "para4", "xishuai2" } });}}public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("hello world! <br />");Response.Write("para1: " + Page.RouteData.Values["para1"]+ "<br />");Response.Write("para2: " + Page.RouteData.Values["para2"]+ "<br />");Response.Write("para3: " + Page.RouteData.DataTokens["para3"] + "<br />");Response.Write("para4: " + Page.RouteData.DataTokens["para4"]+ "<br />");}}

效果:

參考資料:

  • URL Routing with ASP.NET 4 Web Forms (VS 2010 and .NET 4.0 Series)
  • Using Friendly URLs in Web Forms

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 枝江市| 保亭| 江城| 绥江县| 弋阳县| 双桥区| 清丰县| 灵武市| 孙吴县| 鹤山市| 高邑县| 礼泉县| 乐业县| 沾化县| 玛多县| 黔江区| 阿克苏市| 玉溪市| 武邑县| 长海县| 眉山市| 哈巴河县| 湘西| 依兰县| 红安县| 舟曲县| 固原市| 韩城市| 鄂温| 方正县| 呼图壁县| 乐昌市| 龙江县| 万宁市| 乌审旗| 外汇| 扎兰屯市| 丰都县| 霍山县| 永福县| 乾安县|