gpt4 book ai didi

asp.net-mvc-3 - 如果使用多个操作,使用 TempData.Keep() 是否会保存所有先前的 TempData?

转载 作者:行者123 更新时间:2023-12-04 02:09:23 25 4
gpt4 key购买 nike

我问这个question昨天。

我相信我已经在使用 TempData 中找到了答案。我的新问题是通过操作(如在向导步骤中)沿着 TempData 串接是否会“保留”所有先前的 TempData,或者我是否必须在每个操作中继续重新声明以“保留”它。

因此,如果 TempData Step1 具有字段 1、2 和 3,然后 Step2 具有字段 4、5 和 6,那么 1 到 6 将保留在 Step3 中:

[HttpPost]
public ActionResult Step1 (Step1Model model)
{
if (ModelState.IsValid)
{
TempData["Step1"] = model;
return RedirectToAction("Step2")
}
return View(model);
}

public ActionResult Step2 (Step2Model model)
{
Step1Model step1 = (Step1Model)TempData["Step1"]
if (step1 == null)
{
return RedirectToAction("Step1")
}
TempData.Keep("Step1")
if (ModelState.IsValid)
{
TempData["Step2"] = model;
return RedirectToAction("Step3")
}
return View(model);
}
public ActionResult Step3()
{
TempData.Keep() // is this keeping Step1 and Step2?
return View();
}

以上内容过于简单化。最终,我可能有 6 或 7 个步骤,并且想知道 Step3 是否必须像我在 Step2 中那样重新声明 Step1 和 Step2 的使用(即:在新的 Step3 中,我是否必须编写 Step1Model step1... ;Step2Model step2...;?

最佳答案

TempData 项目仅在读取后标记为删除。当一个键被标记为保留时,该键将被保留用于下一个请求。根据 MSDN TempData.Keep() 将字典中的所有键标记为保留。

只需在重定向前调用 TempData.Keep()

关于asp.net-mvc-3 - 如果使用多个操作,使用 TempData.Keep() 是否会保存所有先前的 TempData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20077192/

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