如何在 Asp.Net MVC 中为具有属性路由的操作生成 URL

How to generate URL for the action with attribute routing in Asp.Net MVC

public class HomeController : Controller
{
    [Route("Users/about")]
    [Route("Users/WhoareWe")]
    [Route("Users/OurTeam")]
    [Route("Users/aboutCompany")]
    public ActionResult GotoAbout()
    {
        return View();
    }
}

我为操作 GotoAbout() 定义了很多路线。

当为像 home/users/about 这样的操作生成 URL 时,如何以编程方式在剃刀页面中创建路由 URL?

引用Attribute Routing in ASP.NET MVC 5 - Route Names

您可以为路由指定名称,以便轻松地为其生成 URI。

例如,对于以下路线:

[RoutePrefix("Home")]
public class HomeController : Controller {
    [Route("Users/about", Name = "Users_About")]
    [Route("Users/WhoareWe")]
    [Route("Users/OurTeam")]
    [Route("Users/aboutCompany")]
    public ActionResult GotoAbout() {
        return View();
    }
}

您可以使用 Url.RouteUrl:

生成 link
<a href="@Url.RouteUrl("Users_About")">About</a>

这将解析为

<a href="home/users/about">About</a>