Url.Action如何选择路线?

时间:2014-09-04 07:52:29

标签: asp.net-mvc asp.net-mvc-routing

我有这两条路线:

routes.MapRoute(
    name: "First",
    url: "{controller}/{id}/{action}",
    defaults: null,
    constraints: new { id = @"^\d+$" }
);

routes.MapRoute(
    name: "Second",
    url: "{controller}/{action}",
    defaults: new { controller = "Home", action = "Index" }
);

路由处理正常,但网址生成在所有情况下都无法正常工作。

我试图使用@ Url.Action("索引"):

  • 当我在" Home / List"它会生成" Home / Index"
  • 当我在" Home / 1 / Edit"它会生成" Home / 1 / Index"

我可以在这里看到一个模式,但我不知道它为什么会生成这样的网址,我希望只有当我明确传入" id"参数。

我可以使用以下方法解决我的问题,但我对传递路线名称并不感到兴奋:

@Url.RouteUrl("Second", new { action = "Index" })

我还能做些什么让帮助者按预期工作?

0 个答案:

没有答案