MVC 2 RC 2 Ajax URL路径问题

时间:2010-02-17 10:29:22

标签: asp.net-mvc

我在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

2 个答案:

答案 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 }
);