2012-07-05 64 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