【发布时间】:2009-11-28 22:59:46
【问题描述】:
我是 ASP.NET MVC 的新手。在使用传统的 ASP.NET 模型这么久之后,我需要一些时间来理解这个模型。
我正在通过 NerdDinner 了解事情的运作方式。
所以,我有一个对象需要通过几个视图。类似文章NerdDinner Step 6: ViewData and 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
}
}
【问题讨论】:
标签: asp.net-mvc controller tempdata