我在RC 2发行说明中看过
“新的UrlParameter类型允许在路由运行后删除路由中的默认值。”
但我仍然在路径中获得路线值。
这是我得到的:
<div id="PartialView">
<%Html.RenderAction("Partial"); %>
</div>
<% using (Ajax.BeginForm("Partial", new { name = "test" }, new AjaxOptions() { UpdateTargetId = "PartialView" }))
{ %>
<button type="submit">
Submit</button>
<%} %>
在部分页面中:
<% using (Ajax.BeginForm("Partial", new AjaxOptions() { UpdateTargetId = "PartialView" }))
{ %>
<%=Html.TextBox("test") %>
<%} %>
部分视图Ajax URL的输出是:
/Home/Partial?name=test
路由值也包含在Ajax路径中。
这是默认行为还是缺陷......?
谢谢, Santhosh
答案 0 :(得分:1)
默认情况下,它会将RouteValues附加到URL。
要避免RouteValue使用Url.GenerateURL(“action”,....)
RouteValue参数应该是新的RouteDictionary()..
这也不起作用,因为RouteValue参数将与现有的routeData合并。
答案 1 :(得分:0)
从Mr. Haacks blog开始,您需要修改路线!
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);