【发布时间】:2016-10-24 10:55:45
【问题描述】:
我对@987654321@method 有疑问。
如果我使用
@Html.ActionLink("Some text", "MyAction", "MyController", new { id = 1234 }, null)
我得到了这个 href 的链接:
http://web.com/MyController/MyAction/1234
这很好,但如果我使用更多的路由值,比如
@Html.ActionLink("Some text", "MyAction", "MyController", new { id = 1234, param1 = 3, param2 = 10 }, null)
我得到了这个 href 的链接:
http://web.com/MyController/MyAction/1234?param1=3¶m2=10
但我需要:
http://web.com/MyController/MyAction/1234/3/10
你知道我怎样才能得到它吗?
提供更多信息的版本:
在 MyController 代码文件中,我有:
[Route("MyController/MyAction/{id}")]
public ActionResult MyAction(string id) { /* some code */ }
[Route("MyController/MyAction/{id}/{param1}/{param2}")]
public ActionResult MyAction(string id, byte param1, byte param2) { /* some code */ }
这是我的 RouteCofig.cs 文件:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
【问题讨论】:
-
我在动作
public ActionResult MyAction(string id, byte param1, byte param2)中有这个属性[Route("MyController/MyAction/{id}/{param1}/{param2}")],我还以为是一样的呢。 -
你能告诉我们你的路线配置吗?
-
使用控制器和路由配置编辑的问题。我错过了什么吗?
-
请尝试使用我回答中的路线。
-
是的,它是“
MyControllerController"。如果我使用 Alexandru 的答案,它可以工作,但我想了解在RouteConfig中添加MapRoute或使用 @987654334 之间有什么区别控制器中的@属性。
标签: asp.net asp.net-mvc razor actionlink html.actionlink