多页表单。我在哪里保存以前的数据?

时间:2013-11-25 15:44:03

标签: c# asp.net asp.net-mvc

所以我有一个7步表单,它可以执行前面的步骤。使用mvc,最好是创建一个大视图模型,并将7个步骤全部放在一个页面中,但只显示某些部分?或者我应该在页面/视图之间进行分割吗?

3 个答案:

答案 0 :(得分:4)

SessionState将是保存上一页数据的不错选择。

例如,

Page 1

var customer = new Customer
{
  FirstName = "John",
};    
Session["Customer"] = customer;

Page 2

var customer = Session["Customer"];
customer.Address1 = "123 Street";
Session["Customer"] = customer;

答案 1 :(得分:1)

我建议您将数据保存在MVC的Model部分中。打破您的形式,以便从用户的角度来理解和处理它是最容易的。完成表单后,您可以将模型中的数据发送到要处理的服务器。或者您可以允许他们根据需要进行更改。

如果您的数据结构很复杂,那么您创建一个尽可能最好地表示它的模型,那么它将更容易处理。

答案 2 :(得分:1)

我曾在ASP.NET MVC中使用过12页的表单。表单的每个页面都很长,我在每个页面提交后存储了数据。 我为每个页面都有一个单独的表(模型类),每个视图都有一个相应的视图模型。当您导航回某个上一页时,您只需检索该页面的数据。

我还将最后完成的页码存储在数据库中以进行导航。用户可以注销并稍后返回以完成表单,然后他们将被重定向到他们离开的页面。