在会话中保存对象(Storing object in Session)

2019-09-21 02:00发布

我知道这个问题已经在无数的帖子受到的待遇,但我不能工作了。

内内置控制器一个ActionResult我想存储对象的会话和其他的ActionResult检索。 像那样 :

    public ActionResult Step1()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Step1(Step1VM step1)
    {
        if (ModelState.IsValid)
        {
            WizardProductVM wiz = new WizardProductVM();
            wiz.Step1 = step1;
            //Store the wizard in session
            // .....
            return View("Step2");
        }
        return View(step1);
    }

    [HttpPost]
    public ActionResult Step2(Step2VM step2)
    {
        if (ModelState.IsValid)
        {
            //Pull the wizard from the session
            // .....
            wiz.Step2 = step2;
            //Store the wizard in session again
            // .....
            return View("Step3");
        }
    }

Answer 1:

保存向导:

Session["object"] = wiz;

入门向导:

WizardProductVM wiz = (WizardProductVM)Session["object"];


Answer 2:

如果你只需要它的第二天行动,并打算再次储存它,你可以使用TempData的。 TempData的是基本相同,会议除了它是“删除”在下次访问从而重新将其存储的需求,因为你已经表明你正在做的。

http://msdn.microsoft.com/en-us/library/dd394711(v=vs.100).aspx

如果可能的话,虽然,它可能是更好的确定要使用发布参数必要的数据通过,而不是依靠会话(TempData的或其他方式)的方式



文章来源: Storing object in Session