保持控制器的范围

时间:2015-09-08 07:05:34

标签: c# asp.net asp.net-mvc

昨天我正在开发我的asp.net mvc应用程序,我试图在某个控制器在范围内的某个字段中缓存一些数据。每次打开新视图时,该字段都会保持清除状态。

问题: 当您浏览由所述控制器处理的视图时,是否可以将控制器保持在范围内?

private static List<string> _listOfStrings;

[Authorize]
public ActionResult ToView1()
{
    _listOfStrings = new List<String>(){"test","test2"};

    var model = new Model();
    return View(model);
}

[Authorize]
public ActionResult FromView1ToView2()
{
    var model = new Model(_listOfStrings);
    //the issue at hand is that '_listOfStrings' is not persisted.
    return View(model);
}

任何人都知道这是否可行? (列表很大,所以我不希望通过模型将其发送到视图中,反之亦然)

2 个答案:

答案 0 :(得分:2)

您需要了解ASP.NET MVC lifecycle

简短回答:不,你不能在调用动作后销毁Controller。详细答案:您可以将数据存储(缓存)在TempDataSession属性中。

答案 1 :(得分:0)

_listOfStrings是listOfStrings的另一个变量。您没有写入或读取静态字段。在您提供的代码中,甚至没有定义_listOfStrings。

使用一个静态变量,此代码将起作用。