2009-02-01 100 views
1

我正在構建一個使用ASP.NET MVC的站點,這裏有大量的jQuery和AJAX的東西,我想讓主菜單和AJAX一起工作,或多或少地與網站的其他部分一起工作。實現AJAX主菜單的最佳方式是什麼?

在理想的情況下,我想我的主菜單 1)加載的主要內容與AJAX如果用戶已啓用JavaScript的 2)更改地址欄中的網址(以使鏈接的複製粘貼) 3)只在一個地方使用我的代碼,這意味着我不想在.aspx視圖和.ascx PartialView中使用相同的標記。

1)我沒有問題。但是,我不知道如何在沒有重新加載頁面的情況下完成編號2)。有任何想法嗎?

我意識到第三個問題可能可以通過創建一個呈現每個PartialView的視圖來解決,但是沒有更好的方法嗎?在返回給客戶端之前,可以通過一些方法在站點Master或Controller中「包裝」PartialView?

+0

對不起,你爲什麼要打擾使用Ajax來加載主要內容?如果用戶點擊導航鏈接,那麼他們可以合理地期望帶着新的請求進入不同的頁面。它可能與使用Ajax放屁一樣快,並且它在每個瀏覽器中都是一樣的。 – Rob 2009-02-01 22:24:39

+0

嗯,我想要一個流暢的Web 2.0看看我的網站,因爲我在主區域(菜單,圖像等)有很多靜態內容,如果我能避免它,我不想重新加載所有內容。 作爲一個便箋,我認爲沒有理由投票的問題,因爲問題不是你想要解決的問題。 – 2009-02-01 22:28:07

回答

0

儘管我同意其他一些關於不通過AJAX加載內容的評論,但列表中的#2是一個常見的問題,在處理AJAX時經常出現問題,值得回答。

只有更改網址而不瀏覽器重新加載的方法是在最後加上#。例如:

http://www.yoursite.com/Content/About/#some-identifier 

沒有其他辦法。您可以查看Facebook和Google Mail/Reader等網站,查看實施的示例。

希望它有幫助...

0

#2:在你的菜單例如:在負載

<a href="#helppage" onclick="opento('helppage')">Help Page</a> 

然後在你的身體:您可以將#hash添加到URL的末尾

if(document.location.hash) { opento(document.location.hash); } 

For#3我不知道ASP。抱歉。

1

我傾向於同意羅布(雖然我不會投票給你;))。沒有很好的理由,Ajax等JavaScript技術不應該成爲您網站的核心。我建議在Google上搜索「漸進式增強」和「不顯眼的JavaScript」等術語。

構建一個很好的RESTful站點,然後在JavaScript和Ajax中增強其在很大程度上增強用戶體驗的地方。

相關問題