2009-12-10 204 views
0

在我的控制器類中,我將一些數據返回到我的視圖中,並且都很好。MVC:如何刷新視圖

我可以這樣做嗎?

public ActionResult List() 
    { 
     while (true) 
     { 

      Thread.Sleep(3000); 

      return View("ListStatus", data); 
     } 

    } 

當然,上面的代碼不會像return語句運行時存在的函數那樣工作。

我敢肯定,我可以使用一些Ajax在查看自己從服務器獲取數據了,每3秒但我現在的目的,這將是更容易做到什麼,我試圖在上面的代碼

+0

見[此答案](http://stackoverflow.com/questions/5396282/auto-refresh-in-asp-net-mvc/5396312#5396312)到以後的問題。 – 2011-06-05 15:36:45

回答

5

看來你正試圖從服務器端進行刷新。就像將更新推送給客戶端一樣。這不是asp.net的工作方式。客戶端發出請求,然後服務器發送響應。這一點意味着你不能做到上述。

就像jcm說的那樣,您需要讓客戶端/瀏覽器對更新後的數據進行後續請求。

我會建議一個js/ajax/jQuery選項。你可以谷歌和一堆例子。

+0

這不是網絡的工作方式,更不用說asp.net了。 – darasd 2009-12-10 09:19:41

+0

從技術上講,您可以保持連接打開並隨時間不斷向其添加數據。但這是高度依賴於瀏覽器的行爲,而不是您想要做的事情(至少在今天的技術中,請參閱HTML5 Websockets)。如果你想要一個持久連接使用flash,一個java小程序或silverlight。 – Matt 2009-12-10 09:30:54

+0

Websockets真的聽起來像是一個很好的未來方式。 (未來以粗體顯示)http://dev.w3.org/html5/websockets/。這個草稿昨天出來了。 – 2009-12-10 10:46:06