如何操作 link 具有多个文件夹的路由,而不仅仅是控制器和操作?

How to action link a route with several folders, not only controller and action?

我知道我可以link像这样的路线:

 // GET: Home
    [Route("Home/About/{text}/{a}/{b?}/{c?}")]
    public ActionResult About(string text, string a, string b, string c)
    {
      ViewBag.Message = text + a + b + c;
      return View();
    }

通过这样做:

@Html.ActionLink("GO", "About", "Home", new {text = "Test", a="value1",b="value2",c="value3" },null)

但是如果我想采取 link 这样的操作怎么办?

 // GET: Home
    [Route("api/[controller]/[action]/{text}/{a}/{b?}/{c?}")]
    public ActionResult About(string text, string a, string b, string c)
    {
      ViewBag.Message = text + a + b + c;
      return View();
    }

提前致谢!

将路线名称添加到您的操作中:

 [Route("api/[controller]/[action]/{text}/{a}/{b?}/{c?}", Name ="AboutRoute")]
    public ActionResult About(string text, string a, string b, string c)
    {
      ViewBag.Message = text + a + b + c;
      return View();
    }

并使用名称:

@Html.RouteLink("GO","AboutRoute", new {
                        text = "Test", 
                        a="value1",
                           b="value2",
                       c="value3" } )

我使用 Visual studio 对其进行了测试,它工作正常。

顺便说一下,您可以通过两种方式调用此操作。

1.Using路线Link和路线名称

  1. 使用另一个输入控件或 httpclient 或 ajax 或 url 的邮递员 .../api/..controllerName../..actionName../..路由值...