0

我有一个名为 User 的区域,我为它编写了 MapRoute:

  context.MapRoute(
      "User_Category",
      "User/Category/{categoryId}",
       new { controller = "Product", action = "Category", categoryId = UrlParameter.Optional },
       new { categoryId = @"\d+" }
  );

这是另一个例子,我有一个链接:

<%=Html.ActionLink("Điện thoại", "Category", new { area = "User", controller = "Product", id = 1  }, null) %>
(http://localhost:8578/User/Product/Category/1)

当然,我不能这样做:

<%=Html.ActionLink("Điện thoại", "User/Category", new { area = "User", controller = "Product", id = 1  }, null) %>

在上面的 MapRoute 之后,它被修改了。这意味着它在一个区域中,我不知道如何将区域名称传递给 ActionLink 以具有:http://localhost:8587/User/Category/1

但我想要的是将 ActionLink 替换为 RouteUrl 以获得绝对链接,例如**http://localhost:8587/User/Category/1**

我应该怎么办?以及如何删除 URL 中的用户名?感谢收看!

4

1 回答 1

1

我认为这是因为您的路线是使用 route 参数定义的,categoryId但您的操作链接仅使用该参数id?如果是这样,试试这个:

<%=Html.ActionLink("Điện thoại", "Category", new { area = "User", controller = "Product", categoryId= 1  }, null) %>

如果你想要完整的绝对 URL,那么你可以这样做:

<a href="<%= Html.ViewContext.HttpContext.Request.Url.GetLeftPart(UriPartial.Authority) + Url.Action("Category", new { area = "User", controller = "Product", categoryId= 1  }) %>">Điện thoại</a>
于 2013-04-16T17:07:38.867 回答