我为列表生成一些url,当id匹配某个字符串时,我想调用另一条路径而不是默认的"文章"一 我设法做到了。 我有3条路线,都在工作。
routes.MapRoute(
name:="ArticleToPage",
url:="article-MySecondPage",
defaults:=New With {.Controller = "MySecondPage", .Action = "MySecondPage"}
)
routes.MapRoute(
name:="MySecondPage",
url:="MySecondPage",
defaults:=New With {.controller = "MySecondPage", .action = "MySecondPage"}
)
routes.MapRoute(
name:="Article",
url:="article-{id}",
defaults:=New With {.Controller = "Page", .Action = "Article", .id = UrlParameter.Optional}
)
这项工作没问题,把我改正到了我想要的地方。
但是有没有办法打电话给路线" MySecondPage"而不是" AticleToPage",为了拥有正确的网址? 我试图指定路线行动和几件事但我无处可去..你知道吗?
编辑
我可能不清楚那里
我有2个网址链接到那些将我发送到同一页面的路线:
Site/MySecondPage
Site/Article-MySecondPage
当我打电话给#34; Site / Article-MySecondPage"我希望它真正重新路由到我的" MySecondPage"路由,或转换路由呼叫中的网址(但我认为不可能)到"网站/ MySecondPage"
答案 0 :(得分:0)
路由将按顺序调用,所以" ArticleToPage"将始终在" MySecondPage"。
之前调用答案 1 :(得分:0)
您的两个网址:
Site/MySecondPage
Site/Article-MySecondPage
应该有效。也就是说,当您调用其中每个URL时,您的应用程序应在名为MySecondPage
的控制器中运行MySecondPageController
操作。
如果你想要的是生成带有第二个网址的网址,则需要使用@Html.RouteLink
而不是@Html.ActionLink
,这样你就可以将路由的名称传递给匹配。
@Html.RouteLink(
linkText:= "My Second Page 1",
routeName:= "ArticleToPage",
routeValues:= New With {.Controller = "MySecondPage", .Action = "MySecondPage"})
@Html.RouteLink(
linkText:= "My Second Page 2",
routeName:= "MySecondPage",
routeValues:= New With {.Controller = "MySecondPage", .Action = "MySecondPage"})