保持控制器在范围内

本文关键字:范围内 控制器 | 更新日期: 2023-09-27 18:11:35

昨天我正在工作在我的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);
}

有人知道这是可能的吗?(列表很大,所以我宁愿不通过模型发送到视图,反之亦然)

保持控制器在范围内

您需要阅读有关ASP的内容。. NET MVC生命周期。

简短的回答:不,你不能导致Controller在调用一个动作后被破坏。详细答案:您可以存储(缓存)数据在TempDataSession属性

_listOfStrings是与listofstring不同的变量。您不是在向静态字段写入或从静态字段读取。在您提供的代码中,_listOfStrings甚至没有定义。

使用一个静态变量,这段代码将工作