2012-07-05 98 views
0

假設我是有一個Web應用程序和在應用程序調用innerPage觀點誰的模型看起來是這樣的:保持數據的安全

public class innerPageModel 
{ 
    public bool isFirstTime = true; 
    public List<int> threadIDList; 


} 

這裏是我的innerPage控制器:

public ActionResult innerPage(InnerPageModel model) 
{ 
    if (model.isFirstTime == true) 
    { 
     Thread t = new Thread(Work); 
     model.threadIDList.Add(t.ManagedThreadID); 
     model.isFirstTime = false); 

    } 
    System.Diagnostics.Debug.Write((model.threadIDList.Count).toString()); 
} 

現在我的innerPage視圖每5秒刷新一次,因此每遍都會遍歷我的innerPage控制器。問題是我的模型中的所有數據在每次遍歷控制器後都會被重置(每當它進入if塊時,表明model.isFirstTime正被重置爲真,當我只想遍歷if塊時第一次)。同樣,我的model.threadIDList每次都會重置。

有沒有一種方法可以將數據保存在我的模型中,這樣每次我的視圖刷新都不會丟失?

回答

1

MVC模型假定控制器將被調用,返回一個ActionResult然後完成。

does not seem safe啓動控制器操作中的線程。

如果您需要在HTTP請求之間保留數據,則可以將其存儲在SessionCache中,具體取決於數據是按用戶的還是全局的。

如果你需要真正的後臺處理,看

+0

我繼續一個存儲在會話我的數據。 Phil Haack提出了一篇我在文章中沒有想到的有趣觀點。儘管我在應用程序中實現'IRegisteredObject',但我有點不穩定。由於我將要等待的是Thread類對象,我將使用Thread來實現'IRegisteredObject'接口嗎?誰會執行我的控制器類中定義的'Work()'方法?或者我會讓控制器類實現它? – hemlocker 2012-07-09 21:07:24