属性路由默认网址

问题描述 投票:1回答:1

我在控制器中使用以下方法,使用带有属性路由的C#MVC:

[Route("")]
[Route("/something-else")]
public IActionResult Index(){

}

我使用两个不同的路由来访问这个功能,因为我希望带有书签的客户能够使用前一个实现。问题是当我发出这样的动作时,我无法指定哪些路由将是默认路由:

<a asp-controller="FOO" asp-action="Index">

Everythiing按预期工作,两个URL都可以工作,但是我无法通过上面的操作指定在操作导航时使用哪些路由。我希望每次导航到此操作时都会使用第一条路径,除非有人明确地将旧网址写入浏览器。

[Route(“”)]标签是否有任何默认属性?

asp.net asp.net-mvc razor .net-core
1个回答
3
投票

RouteAttribute类有Order属性。来自文档:

获取路线顺序。订单确定路线执行的顺序。首先尝试具有较低订单值的路线。

例如:

[Route("/something-else", Order = 1)]
[Route("", Order = 2)]
public IActionResult Index(){

}

顺便说一句,我强烈建议您不要使用多个URL来提供同一页面。谷歌的索引会因为它而给你带来更糟糕的排名。相反,请考虑将重定向返回到新URL。

© www.soinside.com 2019 - 2024. All rights reserved.