在MVC4中的视图之间维护数据



我想知道如何在MVC4中的多个操作之间流动数据。

例如,用户降落在一个页面(未经认证),填写一些数据然后转到第二视图,填写另一组数据,然后在提交上,如果用户经过身份验证,则代码检查,然后进行收益。此外,否则转到登录/注册视图,对验证并重定向到第三步。

现在,我想知道如何在该用户进行身份验证时保留数据,是否应该将数据放入会话对象中,一旦用户完成身份验证来检索数据?我不确定如何以MVC的方式进行正确的方式,因为与Web表单相比,它有点不同。

您可以做的是在初始控制器中创建一个tempdata键,当返回值时,其值将是用户输入的内容。

在您的控制器操作中:

 [HttpPost]
 public ActionResult LandingPage(LandingPageViewModel model)
 {
    TempData["Model"] = model;
    return RedirectToAction("OtherDataPage");
 }

因此,在您的着陆页上,用户发送输入时,将其存储在tempdata中,然后将用户重定向到另一页以填充信息。

在另一个操作中,您可以使用tempdata从用户的先前输入设置对象值。

 public ActionResult OtherDataPage()
 {
    LandingPageViewModel model = new LandingPageViewModel();
    model = TempData["Model"];
    return View();
 }

类似的东西应该坚持用户输入

在这些情况下,与WebForm没有什么不同。您可以使用会话即使通常不选择不存储在服务器中的状态,也可以使用cookie(如果数据很小)。

您可以使用" tempdata"或" viewbag"以获取更多信息,您可以看到此链接什么是ViewData,ViewBag和Tempdata?

最新更新