2012-05-13 77 views
1

上午建立了一個典型的管理門戶 - 有兩個共享的局部視圖.cshtml文件的頂部和左側菜單。然後,主要內容是通常的視圖文件。C#MVC4 Razor部分視圖 - 切換視圖時整頁刷新?

例如,我在「views」中有一個「dashboard.cshtml」和「settings.cshtml」等等。在這些,我打電話給@ Html.Partial(「_ Layout_topmenu」)和@ Html.Partial(「_ Layout.leftnav」)

一切都「工作」很好,除了當我從「儀表板」到「設置」並返回到「儀表板」,我看到整個屏幕刷新。我期待只有主要內容部分刷新,而頂部和左側導航將保持不變,因爲他們是部分視圖..我錯過了什麼?

在返回ActionResult類型的「Dashboard」和「Settings」GET方法的控制器代碼中,我簡單地返回view();

所以有可能保持頂部菜單和左導航窗格,並不斷改變主要內容,同時從/ site/controller/view1移動到// site/controller/view2(並且不涉及jQuery/AJAX魔法)... ?

謝謝!

回答

3

除非你使用框架,我認爲你不是,或者你是通過ajax手動加載部分視圖的html到它們各自的容器中,你只是發出一個普通的http請求。部分視圖僅在服務器上,而不在客戶端上,所以當您爲給定頁面提出請求時,整個事件都會重新加載。

如果你想加載獨立於其他區域的內容區域,我會建議尋找從你的控制器方法返回PartialView(),並通過jQuery的.load()方法調用該方法。


編輯

不使用jQuery /其他魔法,沒有。如果你提出一個頁面的請求,你會加載一個頁面。這不應該是一個驚喜。

+0

啊我只是編輯我的帖子意識到我可能需要通過jQuery獲取主要內容,你剛纔回答同樣..好吧,讓我看看通過.load()獲取部分視圖數據! –