2014-07-19 98 views
5

後,瀏覽器更新網址我有一個Ajax的形式,這樣的事情:MVC Ajax.BeginForm - 成功Get請求

@using (Ajax.BeginForm("AjaxSerchResult", "Search", new { area = string.Empty }, new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "Results", LoadingElementId = "Loading" }, new { id = "Search" }) 
{ 
//Fields go here 
} 

的問題是:如何更新與我送使用AJAX PARAMS瀏覽器的網址是什麼?

+0

請採取[這]一看(http://stackoverflow.com/questions/ 136458 /改變網址在瀏覽器中無需加載新頁面使用JavaScript) –

+0

但如何使它與mvc ajax控制工作?即時通訊不是專家在JavaScript ... –

+0

看看我的答案下面,無論如何,你必須使用JavaScript,因爲只有通過使用JavaScript,你可以更改網址。 –

回答

4

,如果你想使用Ajax.BeginForm(),你會用 「的onSuccess」 屬性和benalman's plugin,因爲沒有JavaScript的你將無法更改URL

demo of url changing(jQuery的1.9要求)

@using(Ajax.BeginForm(
     "AjaxSerchResult", 
     "Search", 
     new { area = string.Empty }, 
     new AjaxOptions(){ 
         HttpMethod = "Get", 
         UpdateTargetId = "Results", 
         LoadingElementId = "Loading", 
         OnSuccess = "changeUrl(data)" 
         }, 
     new { id = "Search" })) 
     { 
      //Fields go here 
     } 

和javascript :

<script> 
    function changeUrl(data) { 
     //if you are using benalman's plugin with jQuery 1.9 
     location.hash = "#my_hash"; 
    } 
    </script> 

注:但由於USI NG $.browser在benalman的插件(即已經從jQuery的1.9移除),我會建議使用window.location.hash = "#my_url";window.location.replace("#my_url");代替location.hash = "#my_url";