【问题标题】:How to generate URL for the action with attribute routing in Asp.Net MVC如何在 Asp.Net MVC 中为带有属性路由的操作生成 URL
【发布时间】:2017-11-21 00:56:51
【问题描述】:
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 时,如何以编程方式在 razor 页面中创建路由 URL?

【问题讨论】:

  • 给路由起个名字,直接按名字引用路由。
  • 怎么做......如果可能的话,你能给我一个小的示例代码吗?

标签: c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing


【解决方案1】:

参考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>

【讨论】:

  • 我可以像这样生成路由 url @Html.RouteLink(Model.PostTitle, " ArticlesPost ", new { category = Model.postCategory.Category, url = Model.PostUrl }, new { @class = "title" }) 代码取自 dotnet-tutorial.com/articles/mvc/…
猜你喜欢
  • 2016-05-22
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2019-05-28
  • 2015-02-08
  • 1970-01-01
相关资源
最近更新 更多