部分视图的路由不起作用

时间:2015-08-06 03:14:57

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

我为我的部分视图定义了一条路线,如下所示:

routes.MapRoute(
    "ListInventory",
    "Inventory/List/{Id}/{code}",
    new { controller = "Inventory", action = "ListItems" },
    new[] { "TYP.Web.Controllers" }
);

我使用jQuery加载方法从此局部视图中获取HTML

$(".main").empty()
   .load("@Url.Action("ListItems", "Inventory", new { Id = Model.Id, code = Model.Code })")

Url.Action根据我的路线正确呈现网址:

/Inventory/List/1/ABC

但我刚刚从该网址收到404错误。如果我直接导​​航到

/Inventory/ListItems?Id=1&code=ABC

虽然有效。所以路线有点被认可。如果我完全从RouteConfig.cs文件中删除路由,则Url.Action()将我的URL呈现为:

/Inventory/ListItems?Id=1&code=ABC

但在这种情况下,&会导致我的code查询字符串值出现问题。

我可以在这里做些什么来使这个局部视图正常工作?

1 个答案:

答案 0 :(得分:0)

这是因为在您的路线中,您将要重新映射的操作指定为列表,而不是 ListItems 。这意味着 / Inventory / ListItems 将不再使用 / Inventory / List

请参阅以下代码:

更改此代码:

@Url.Action("ListItems", "Inventory", new { Id = Model.Id, code = Model.Code })

到此代码:

@Url.Action("List", "Inventory", new { Id = Model.Id, code = Model.Code })