2010-02-17 95 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