2012-01-23 146 views
1

我有我的_Layout.cshtml中包含的部分視圖。它只是一個基於我的系統狀態改變圖像的JavaScript函數。我不需要重新加載任何數據,我不需要去控制器的任何代碼,我只需要重新加載該部分視圖。刷新MVC中的部分視圖3

我嘗試了很多我在這裏找到的例子,但無法讓他們工作。無論如何,我覺得他們對我所做的事情太複雜了。任何指導將不勝感激。

感謝,

史蒂夫

回答

6

如果部分被裝入佈局直接再有就是刷新它沒有簡單的方法,因爲它基本上完全渲染頁面的一部分。

最好的辦法是使用$.load或任何你可用的等價物,通過點擊一個控制器方法並將結果渲染到容器(如div)來渲染局部。您必須在通過觀察document.ready或類似的東西加載佈局本身的腳本內執行此操作。一旦你有了這些,那麼通過按照你需要的次數按控制器方法來繼續重​​新加載或刷新內容是微不足道的。例如jQuery中:

$(document).ready(function() { 
    RefreshPartial(); 
    window.setInterval(RefreshPartial, 10000); 
}); 

function RefreshPartial() { 
    $('#container').load('/some/controller/endpoint', {parameters});  
} 

這將調用控制器的方法,以及設置與#container標識的元素的內部內容。您可以根據需要多次撥打RefreshPartial

+0

好的,太好了!這讓我走了大半路。現在,如何在一個定時器上設置相同的交易? – SteveInTN

+0

@SteveInTN我編輯了'document.ready'處理程序,以顯示如何每10秒調用一次刷新方法。 – kprobst

+0

謝謝kprobst! – SteveInTN

1

部分視圖只存在於服務器上。 「刷新」部分的唯一方法是返回到服務器再次獲取它。

很顯然,你必須在需要提神的部分做些事情。無論如何,都應該從javascript中調用來進行刷新。

+0

幾乎是一個正在改變幕後價值的變量。我的部分需要做的是加載一個圖像作爲源的值。簡單地說。 – SteveInTN