我有一个 MVC4 控制器,它多次调用它的视图,每次都使用一组不同的 ViewBags。视图通过以下方式根据这些 ViewBag 的存在与否来呈现 Form 的内容:
@using (Html.BeginForm())
{
@if (ViewBag.Foo1 != null)
{
@Html.DropDownList("Bar1",....
}
@if (ViewBag.Foo2 != null)
{
@Html.DropDownList("Bar2",....
}
<input name="ActionButton" type="submit" value="Ok"" />
}
每次用户单击提交按钮时,控制器都会检查集合中的内容,并在再次调用视图之前创建一组新的 ViewBags,有点像这样:
public ActionResult Create()
{
ViewBag.Foo1 = "blawblaw";
return View();
}
[HttpPost]
public ActionResult Create(FormCollection collection)
{
if (collection["Bar1"] != null)
{
string FirstPass = collection["Bar1"];
ViewBag.Foo2 = "blawblaw";
}
if (collection["Bar2"] != null)
{
string SecondPass = collection["Bar2"];
ViewBag.Foo3 = "blawblaw";
}
return View();
}
我现在需要做的是以某种方式让每次通过控制器“记住”有关其先前通过的一些信息。也就是说,在我的示例中,第二次通过控制器(collection["Bar2"] 为 true 的那个),FirstPass 的值为 null。
我怎样才能做到这一点?