如何在 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>
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
:
<a href="@Url.RouteUrl("Users_About")">About</a>
这将解析为
<a href="home/users/about">About</a>