Evg*_*kiy 5 ajax jquery asp.net-mvc-4
我有一个Ajax表单,如下所示:
@using (Ajax.BeginForm("AjaxSerchResult", "Search", new { area = string.Empty }, new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "Results", LoadingElementId = "Loading" }, new { id = "Search" })
{
//Fields go here
}
Run Code Online (Sandbox Code Playgroud)
问题是:如何用我使用AJAX发送的params更新浏览器URL?
如果你想使用Ajax.BeginForm(),你可以使用“OnSuccess”属性和benalman 的插件,因为没有 javascript 你将无法更改 url
url 更改演示(需要 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
}
Run Code Online (Sandbox Code Playgroud)
和 JavaScript:
<script>
function changeUrl(data) {
//if you are using benalman's plugin with jQuery 1.9
location.hash = "#my_hash";
}
</script>
Run Code Online (Sandbox Code Playgroud)
注意:但由于$.browser在 benalman 的插件中使用(已从 jQuery 1.9 中删除),我建议使用window.location.hash = "#my_url";orwindow.location.replace("#my_url");代替location.hash = "#my_url";