在控制器中仅处理内存数据
本文关键字:内存 数据 处理 控制器 | 更新日期: 2023-09-27 18:34:56
我想在 mvc 控制器中使用一些仅内存数据,所以我引入了类型 _user 的私有属性,它将保存当前的数据表示。在控制器构造函数中,我正在使用一些数据启动这些私有属性。
public class UserController : Controller
{
private User _user = null;
private User Data()
{ _user = new User {Id = .... ... }
}
public UserController()
{
_user = Data();
}
}
这很好,数据已正确填充,并且我已正确将这些初始化数据(有一些更改(从编辑表单发送到发布操作
[HttpPost]
public ActionResult Edit(User user)
{
_user.Name = user.Name;
_user.Pass = user.Pass;
return redirectToAction("Index");
}
在索引操作上有
public ActionResult Index()
{
return View(_user);
}
但渲染索引上的数据保持不变。
我做错了什么?
当您调用 return RedirectToAction("Index");
时,您的应用程序会发送到浏览器 http 代码 302(重定向(,浏览器调用您的索引页。因此,您的控制器再次初始化,并再次调用其构造函数。
要实现所需的目标,您应该将用户数据保存到数据库或其他存储Edit
并从存储中获取此数据Index
操作。
此外(如果您只想在两次调用之间保存它(,您可以将用户数据添加到控制器类TempData
属性中,并在下次调用时将其获取Session
或使用属性。