2014-09-12 64 views
0

我是第一個使用mvc 4的站點,站點使用了很重要的異步請求,到目前爲止它們都是可管理的,基本上這是一個頁面,它顯示來自數據庫的記錄,並允許用戶根據某些下拉列表中的選擇來篩選它們它們提出這些請求。如何進行異步請求並更新url/querystring參數?

現在業務需求指出在發生過濾時更新URL,以便用戶可以通過複製粘貼URL共享已過濾的記錄,我想知道是否有辦法實現它,比如instagram如何在點擊時顯示圖像模型彈出窗口,並更新URL,以便用戶可以分享它,當通過家庭導航到通知時,twitter也是如此。

任何建議將不勝感激。 在此先感謝。

+1

搜索發現http://stackoverflow.com/questions/824349/modify-the-url-without -reloading-the-page – whatever5599451 2014-09-12 17:39:09

+0

@ whatever5599451:這些都是很好的答案,但考慮用戶存儲這個url時的場景,下一次向頁面發出請求後端方法如何讀取這些值? – Vishal 2014-09-12 17:48:41

回答

2

Instagram使用JavaScript歷史記錄API通過javascript更改網址,而無需重定向。看看https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

// Suppose http://mozilla.org/foo.html executes the following JavaScript: 
var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", 
"bar.html"); This will cause the URL bar to display 
// http://mozilla.org/bar.html, but won't cause the browser to load bar.html 
// or even check that bar.html exists. 

對於MVC友好JS庫,你可以使用History.JS http://balupton.github.io/history.js/demo/?state=2

+0

這些是一個很好的解決方案,但考慮用戶存儲此url時的場景,下次向頁面發出請求後端方法如何讀取這些值? – Vishal 2014-09-12 17:54:01