我正在嘗試在我的客戶端服務器應用程式中進行導航。我正在嘗試制作一個小的在線目錄
我希望在瀏覽類別時,路徑顯示在 URL 中:
https://test.com/
https://test.com/controllers
https://test.com/controllers/for-media-screens
https://test.com/
https://test.com/phones
https://test.com/phones/nokia
如果你知道除了最后一個鏈接之外的整個路徑,你可以@page "/phones/{model}"在 Razor 組件中寫
那么當整個路徑未知時怎么辦?該@page指令不能包含具有將擴展為鏈接的值的陣列。
你有什么想法如何組織?
我認為級聯引數會起作用,但它們不適用于@page.
我還認為可以在資料庫中存盤產品的完整路徑,但我不確定這是最好的解決方案。
UPD:@KirkWoll,原則上所有類別都是未知的
好吧,看看我的意思 可以有大量不同級別的類別和子類別:
https://site.ru/1-level/2-level/.../n-level/product
當我們移動到 1 級目錄時,我們的 URL 看起來像/1-level. 從那里我們可以轉到下一級類別,URL 將如下所示/1-level/2-level。等等。
也就是說,我們只知道具體的域
相對而言,如果我們網站上只有1個類別沒有任何子類別,那么我們可以簡單地在類別頁面模板的頁面指令中嚴格設定其URL,例如@page "/category",并寫入@page "/category/{Id:int}產品模板
問題是如何撰寫傳遞前一個 URL 的代碼,使鏈接看起來像 https://site.ru/1-level/2-level/.../n-level/product
也就是說,如果可能的話,我需要在 category 的模板@page "/{?1}/{?2}.../{n}"和產品模板 @page 中寫入"/{?1}/{?2}.../{n}/{Id:int}"
uj5u.com熱心網友回復:
在支持具有任意深度級別的路線方面,您正試圖實作一些開箱即用的東西。一種方法是使用“捕獲所有”路由工具。它基本上是一種使用給定前綴的所有可能路由的方法。從檔案:
@page "/catch-all/{*pageRoute}"
@code {
[Parameter]
public string PageRoute { get; set; }
}
對于
/catch-all/this/is/a/test路由模板為 的 URL/catch-all/{*pageRoute}, 的值PageRoute設定為this/is/a/test。
有了它,您應該能夠使用PageRoute、決議它并執行您需要的操作來支持您的路由需求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334651.html
上一篇:隱藏欄位中的日期時間選擇器值
