我是新的 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 %>"
....在 HyperLink 控件的标记中
给定以下地址,我该怎么做....
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")
....但这意味着路由名称需要不同,我需要绑定超链接控件以匹配它们。
我希望我已经明确表达了自己,并且我感谢社区可能提供的任何帮助。