2010-02-17 96 views
1

我已经在RC 2发布说明看到Ajax的URL路径说MVC 2 RC 2问题

“新UrlParameter类型允许路由默认值URL路由运行之后被删除。”

但我仍然得到路径中的路由值。

这里我得到什么:

<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") %> 
<%} %> 

局部视图阿贾克斯URL的输出是:

/Home/Partial?name=test 

凡路由值也包括在Ajax路径。

这是默认行为还是缺陷......?

感谢, Santhosh

回答

1

默认情况下,它会将RouteValues附加到URL。

为了避免RouteValue使用Url.GenerateURL( “动作”,....)

凡RouteValue参数应新新RouteDictionary()..

这tooo不工作作为RouteValue参数将仅与现有的routeData合并。

0

Mr. Haacks blog,您需要修改的路线!

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 
+0

默认情况下其路线包含 id = UrlParameter.Optional only。但仍然然后我得到与路线值的输出。 – Santhosh 2010-02-17 11:02:12

+0

阅读他关于此事的最新博客文章。 – 2010-02-17 11:20:54