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

首頁 > 編程 > .NET > 正文

ASP.NET Core Razor 頁面路由詳解

2024-07-10 12:48:57
字體:
來源:轉載
供稿:網友

 在服務器端 Web 應用程序框架中,其中非常重要的設計是開發(fā)人員如何將URL與服務器上的資源進行匹配,以便正確的處理請求。最簡單的方法是將 URL 映射到磁盤上的物理文件,在 Razor 頁面框架中,ASP.NET團隊就是這樣實現(xiàn)的。

關于 Razor 頁面框架如何將 URL 與文件相匹配,有一些規(guī)則您必須了解,以及如何根據需要自定義規(guī)則改變輸出的結果。如果您將 Razor 頁面與 Web Form 框架進行比較,您還需要了解取代的 Ur l參數(shù)以及在URL中傳遞數(shù)據的機制。

規(guī)則一,Razor 頁面需要一個根目錄。默認情況下,該根目錄是 Pages,位于Web應用程序項目的根目錄中。您可以在Startup類的ConfigureServices方法中配置其它文件夾作為根目錄。以下是將根目錄更改為位于應用程序 “Content” 文件夾:

 public void ConfigureServices(IServiceCollection services) {   services    .AddMvc().    AddRazorPagesOptions(options => {     options.RootDirectory = "/Content";   });  }

規(guī)則二,URL映射到Razor頁面,URL不包含文件擴展名。

規(guī)則三,“Index.cshtml”是一個默認文檔,這意味著如果

URL 映射文件
www.domain.com /Pages/Index.cshtml
www.domain.com/index /Pages/Index.cshtml
www.domain.com/index /Pages/Index.cshtml
www.domain.com/account /Pages/account.cshtml 或者 /Pages/account/index.cshtml

在最后一個例子中,URL映射到兩個不同的文件 - 根目錄中的“account.cshtml”、“account”文件夾中的“index.cshtml”。Razor 頁面框架無法識別要選擇哪一個文件,因此如果您在應用程序中實際同時擁有這兩個文件,那么如果您嘗試瀏覽www.domain.com/account,會拋出如下異常:

AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:

Page: /account/Index

Page: /account

URL傳遞參數(shù)

就像大多數(shù)其它框架一樣,參數(shù)可以作為查詢字符串在 URL 中傳遞,例如:www.domain.com/product?id=1;或者,您可以將其作為路由參數(shù)傳遞,因此上述示例將變?yōu)?code>www.domain.com/product/1。URL的一部分必須映射到參數(shù)名稱,在頁面的路由模板來實現(xiàn)的,@page指令的一部分:

@page "{id}"

該模板告訴框架將頁面名稱之后URL的第一段作為“id”的路由參數(shù)。您可以通過多種方式訪問路由參數(shù)的值。第一個是使用

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 科尔| 清徐县| 双柏县| 抚宁县| 吴桥县| 白朗县| 梁平县| 且末县| 花莲县| 宝山区| 荔波县| 紫阳县| 大方县| 德安县| 宁阳县| 开远市| 怀化市| 锡林浩特市| 奉节县| 兴安盟| 镇坪县| 包头市| 泽普县| 苏州市| 新竹市| 邹平县| 浪卡子县| 桦甸市| 集安市| 海安县| 大理市| 芦山县| 红安县| 江陵县| 平阳县| 博客| 始兴县| 蓝田县| 龙里县| 自治县| 观塘区|