在多个页面之间保持值

Dom*_*ord 5 c# asp.net-mvc vue.js

我正在重写一个 MVC 应用程序,该应用程序当前使用 cookie 来保存多个页面之间的数据,例如日期。我试图想出一个选项,通过使用这样的东西将数据保存在控制器中:

public DateTime HoldDate {get; set;}
Run Code Online (Sandbox Code Playgroud)

我面临的问题是这在每个页面加载时都会被覆盖。我也考虑过使用 Vue 来存储变量,然后在页面加载时将日期发送到控制器,但我不确定如何执行此操作。

任何帮助表示赞赏,并提前感谢您!

小智 4

您可以使用TempDataDictionary它将数据从控制器传递到视图并返回。它是一个Dictionary,因此您可以使用密钥访问它:

TempData["HoldDate"] = new DateTime(2020, 2, 13);
Run Code Online (Sandbox Code Playgroud)

当您正常从 读取数据时TempData,它会在下一个 HTTP 请求时自动标记为删除。为了避免这种情况,由于您想要传递这些数据,请使用该.Peek()方法,该方法允许您读取数据,但不会将其标记为删除。

var date = TempData.Peek("HoldDate");
Run Code Online (Sandbox Code Playgroud)