我是 ASP.NET MVC 的新手。在使用传统的 ASP.NET 模型这么久之后,我需要一些时间来理解这个模型。
我正在通过 NerdDinner 了解事情是如何运作的。
所以,我有一个需要通过几个视图的对象。与文章NerdDinner 第 6 步:ViewData 和 ViewModel类似。
我第一次保留从 Get 到 Post 的数据,然后将其放入 TempData 并将其传递给另一个操作 (AnotherAction)。一旦我在 Get 上获得我的数据,我就无法在 Post 上保留它。
这是我的代码:
public class DinnerFormViewModel
{
public Dinner Dinner { get; private set; }
public DinnerFormViewModel(Dinner dinner)
{
Dinner = dinner;
}
}
public class DinnersController : Controller
{
public ActionResult Action()
{
Dinner dinner = new Dinner();
return View(new DinnerFormViewModel(dinner));
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Action(Dinner dinner, FormCollection collection)
{
try
{
// Some code
TempData["Dinner"] = dinner;
return RedirectToAction("AnotherAction");
}
catch
{
return View();
}
}
public ActionResult AnotherAction()
{
Dinner dinner = (Dinner)TempData["Dinner"]; // Got my dinner object
return View(new DinnerFormViewModel(dinner));
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AnotherAction(Dinner dinner, FormCollection collection)
{
// Lost my dinner object, dinner comes in as null
}
}