所以我有一个7步表单,它可以执行前面的步骤。使用mvc,最好是创建一个大视图模型,并将7个步骤全部放在一个页面中,但只显示某些部分?或者我应该在页面/视图之间进行分割吗?
答案 0 :(得分:4)
SessionState将是保存上一页数据的不错选择。
例如,
var customer = new Customer
{
FirstName = "John",
};
Session["Customer"] = customer;
var customer = Session["Customer"];
customer.Address1 = "123 Street";
Session["Customer"] = customer;
答案 1 :(得分:1)
我建议您将数据保存在MVC的Model部分中。打破您的形式,以便从用户的角度来理解和处理它是最容易的。完成表单后,您可以将模型中的数据发送到要处理的服务器。或者您可以允许他们根据需要进行更改。
如果您的数据结构很复杂,那么您创建一个尽可能最好地表示它的模型,那么它将更容易处理。
答案 2 :(得分:1)
我曾在ASP.NET MVC中使用过12页的表单。表单的每个页面都很长,我在每个页面提交后存储了数据。 我为每个页面都有一个单独的表(模型类),每个视图都有一个相应的视图模型。当您导航回某个上一页时,您只需检索该页面的数据。
我还将最后完成的页码存储在数据库中以进行导航。用户可以注销并稍后返回以完成表单,然后他们将被重定向到他们离开的页面。