我为我的部分视图定义了一条路线,如下所示:
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
查询字符串值出现问题。
我可以在这里做些什么来使这个局部视图正常工作?
答案 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 })