我是新的ASP.NET路由並有一個問題。ASP.NET路由可選的第一個參數
在我正在開發的網站上,訪問者註冊並創建一個帳戶(顯示名稱),如JohnDoe和網站個人化自己,並提供有關顯示名稱的信息。
例如(在路由表中的順序,我現在有):
http://www.domain.com/ - Generic index page
http://www.domain.com/Page1 - Generic page1
http://www.domain.com/Page2 - Generic page2
http://www.domain.com/JohnDoe - Personalised index page
http://www.domain.com/JohnDoe/Page1 - Personalised page1
http://www.domain.com/JohnDoe/Page2 - Personalised page2
上述工作正常(我只是對每種可能的規則)。
我的問題是,我現在需要在網站的頁面上創建asp:HyperLink控件。目前,我使用這樣的:
NavigateUrl="<%$ RouteUrl:RouteName=ROUTENAME %>"
....超鏈接控制
的標籤哪有我,考慮到以下地址....
http://www.domain.com/Example - Generic example page
http://www.domain.com/JohnDoe/Example - Personalised example page
.. ..match ROUTENAME,第一個參數可以是可選的?
我能明顯創建兩條路線,如下....
Routes.MapPageRoute("Example_No_Displayname", "Example", "~/Example.aspx")
Routes.MapPageRoute("Example_With_Displayname", "{Code}/Example", "~/Example.aspx")
....但是這意味着該路由名稱需要有所不同,我需要綁定Hyperlink控件同時匹配其中。
我希望我已經說清楚了,我很感謝社區可以給予的任何幫助。
用戶名僅僅是爲了這個問題的例子。用戶名將是我正在撰寫的網站上的顯示名稱。與安全無關。我將編輯這個問題,以免再有混淆。 –
可能對我來說更好的說,人們會將個性化的網站地址提供給他們的朋友。認爲facebook.com/JohnDoe :)與安全無關或正在登錄到我的網站。 –
好的,有道理。有什麼理由不能只使用一個具有可選參數的路線?本質上這將是您在上面用{Code}參數列出的第二條路線,除了爲Code指定的默認值。看到這個答案:http://stackoverflow.com/a/7133692/480588。 –