gpt4 book ai didi

asp.net - 如何将数据保存在 MVC Controller 的内存中?

转载 作者:行者123 更新时间:2023-12-04 14:03:02 30 4
gpt4 key购买 nike

请看下面的 Action 。当用户第一次导航时,创建一个对象,然后当他在页面中导航时,再次访问 Action 但通过 Ajax 请求并且数据消失(worksheets = null)。

    private static List<Worksheet> worksheets;
public ActionResult DoTest()
{
if (Request.IsAjaxRequest())
{
return PartialView("_Problems", worksheets[1]);
}

// first time
worksheets = new List<Worksheet>()
{
new Worksheet("Hoja 1", ...),
new Worksheet("Hoja 2", ...)
};
return View(worksheets[0]);
}

我的第一个解决方案是将变量工作表设置为静态,但我认为这不是一个好习惯。我做得很好还是有另一个tweeks?

最佳答案

远离静态变量,尤其是在数据与用户相关的情况下。您可以利用 ASP.NET Session目的。

这可以通过将您的工作表字段更改为将其值存储在 Session 对象中的属性来轻松完成。这样,将在后续电话中提供 .例子:

  private List<Worksheet> worksheets
{
get{ return Session["worksheets"] as List<Worksheet>;}
set{ Session["worksheets"] = value; }
}

public ActionResult DoTest()
{
if (Request.IsAjaxRequest())
{
return PartialView("_Problems", worksheets[1]);
}

// first time
worksheets = new List<Worksheet>()
{
new Worksheet("Hoja 1", ...),
new Worksheet("Hoja 2", ...)
};
return View(worksheets[0]);
}

关于asp.net - 如何将数据保存在 MVC Controller 的内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14127947/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com