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

Mon*_*kar 3 c# asp.net asp.net-mvc asp.net-mvc-routing asp.net-mvc-5

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

我为行动定义了许多路线GotoAbout().

如何在生成动作URL时以编程方式在剃刀页面中创建路径URL home/users/about

Nko*_*osi 5

ASP.NET MVC 5中的引用属性路由 - 路由名称

您可以指定路由的名称,以便轻松地为其生成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();
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以使用Url.RouteUrl以下方式生成链接:

<a href="@Url.RouteUrl("Users_About")">About</a>
Run Code Online (Sandbox Code Playgroud)

哪个会解决

<a href="home/users/about">About</a>
Run Code Online (Sandbox Code Playgroud)