要保持MVC中的ViewModel值,即使它们未在视图上显示,可以使用Session或TempData来存储ViewModel的值。下面是一个示例解决方法:
在控制器中,在将ViewModel传递给视图之前,将其存储在Session或TempData中:
public ActionResult Index()
{
var viewModel = new MyViewModel();
// 设置ViewModel的值
// 使用Session存储ViewModel的值
Session["MyViewModel"] = viewModel;
// 使用TempData存储ViewModel的值
TempData["MyViewModel"] = viewModel;
return View(viewModel);
}
在需要访问ViewModel值的其他操作中,可以从Session或TempData中检索ViewModel:
public ActionResult OtherAction()
{
// 从Session中获取ViewModel的值
var viewModel = (MyViewModel)Session["MyViewModel"];
// 从TempData中获取ViewModel的值
var viewModel = (MyViewModel)TempData["MyViewModel"];
// 使用ViewModel的值进行其他操作
return View();
}
请注意,使用Session或TempData存储ViewModel的值可能会对性能产生一定的影响,因为涉及到服务器的状态管理。因此,根据具体情况和性能需求,可以选择使用适合的方法来保持ViewModel的值。
上一篇:保持MQTT主题上的消息排序