2011-01-29 57 views
2

我正在用Ajax更新網站的幾個部分,但現在我試圖做類似於Facebook做了什麼。 當我更新節的內容時,問題是我的url保持不變。如果我看到facebook的例子:ASP.NET MVC路由 - domain.com/Events#!/12到domain.com/Events/12

http://www.facebook.com/guilhermegeek#!/guilhermegeek?sk=photos

此鏈接映射到:http://www.facebook.com/guilhermegeek?sk=photos

我已經知道如何使用替代爲那些誰擁有的javascript禁用:<a onclick="javascript:updatecontent(); return false;" href="">

但我不知道是如何編寫我的路線,如Facebook的例子。

如果我改變我的網址,以mydomain.com/News#!/News/12,我應該怎麼路線這mydomain.com/News/12

感謝

回答

3

後面的URL的#(哈希公司Pund)符號的一切都是NEVER發送到服務器。服務器只能看到它之前的部分。只有客戶端的JavaScript可以使用和使用window.location.hash它的意義。所以如果你想在你的應用程序中使用類似的東西,你應該保持原樣的默認路由,然後讓一些JavaScript解析#標誌後面的部分,並執行重定向到相應的url。

所以,你可以有這樣的事情在你的頁面:

var h = window.location.hash; 
if (h != null) { 
    var parts = window.location.href.split('#!/'); 
    if (parts.length > 1) { 
     window.location.replace(parts[0] + '/' + parts[1]); 
    } 
} 
+0

所以我要使用JavaScript在cliente端的路由? – 2011-01-29 22:54:26