【发布时间】:2015-10-20 07:00:31
【问题描述】:
我在视图中有一个表单,我通过提交按钮将一些信息传递给控制器。在控制器中,在一个名为 SaveP 的 ActionResult 中,我想验证一些条件并将这些验证的结果传递回视图,以便在按下提交按钮后重新加载页面时显示一些内容。
代码是这样的:
if (!(editor.ID != null && !string.IsNullOrEmpty(editor.Number) && (!ext.SID.HasValue)))
{
_db.M.DeleteM(editor.PID);
pa.P.MID = null;
TempData["m"] = false;
我希望视图仅在满足这些条件时才显示某些内容。
此外,这个名为 SaveP 的操作结果会重定向以返回 RedirectToAction("P", new { id = editor.ID });
我使用过 ViewBag,但它不起作用,但后来我发现 ViewBag 元素在重定向后不会保留。然后,我尝试使用 TempData,但它在视图中为空。我应该如何解决这个问题?谢谢!
【问题讨论】:
-
自己创建一个模型并为其添加新属性?
-
您如何访问重定向到的 GET 方法中的
TempData值?您需要显示相关代码。但是,如果您只想传递一个bool值,那么只需在您的方法中添加一个参数并使用RedirectToAction("P", new { id = editor.ID, myBool = false }) -
TempData仅在控制器操作(例如重定向)之间持续存在,并且您只能访问它们一次。您重定向到的操作可以将TempData的值添加到ViewBag。
标签: asp.net asp.net-mvc