在ASP.NET MVC Core中,可以使用TempData
来在Post操作中传递旧模型数据给不同的视图。首先,在Post操作中将旧模型数据存储到TempData
中,然后在不同的视图中读取TempData
中的数据并显示。
以下是一个示例代码:
在Post操作中:
[HttpPost]
public IActionResult MyAction(MyModel model)
{
// 保存旧模型数据到TempData
TempData["OldModel"] = model;
// 执行其他逻辑
return RedirectToAction("MyView");
}
在不同的视图中:
public IActionResult MyView()
{
// 从TempData中读取旧模型数据
MyModel oldModel = TempData["OldModel"] as MyModel;
// 清除TempData中的旧模型数据,以防止数据在下一次请求时仍然存在
TempData.Remove("OldModel");
// 显示旧模型数据
return View(oldModel);
}
注意事项:
TempData
用于在请求之间传递数据,但只能在下一次请求中读取数据,因此需要在读取数据后立即从TempData
中删除。TempData
使用Session来存储数据,默认情况下,Session是基于Cookie的。如果应用程序未启用Session或使用其他存储机制,请确保配置正确。TempData
,需要在控制器中使用Microsoft.AspNetCore.Mvc.ViewFeatures
命名空间。这样,当用户在Post操作中提交表单后,旧模型数据将保存在TempData
中并传递给不同的视图进行显示。