我有 6 页,每页都有自己的表单,以及与该表单关联的模型。我想做的是将所有信息存储在所有 6 个表单上,以便用户可以在 6 个页面之间切换,并且仍然可以保存他们以前的工作。这个想法是用户应该能够以任何顺序填写页面上的表格并随时返回他们的工作。
维护所有这些信息的最佳方式是什么?我应该创建一个包含所有其他模型的超级模型,并且只将此模型传递给其他页面吗?谢谢你!
我有 6 页,每页都有自己的表单,以及与该表单关联的模型。我想做的是将所有信息存储在所有 6 个表单上,以便用户可以在 6 个页面之间切换,并且仍然可以保存他们以前的工作。这个想法是用户应该能够以任何顺序填写页面上的表格并随时返回他们的工作。
维护所有这些信息的最佳方式是什么?我应该创建一个包含所有其他模型的超级模型,并且只将此模型传递给其他页面吗?谢谢你!
获取(从数据源)与当前页面相关的数据并显示它。如果要显示页面中的所有数据(例如:所有页面的摘要页面,创建一个包含所有数据的视图模型)。您可以从各种来源获取数据,例如数据库表/Web 服务/XML 文件/缓存数据/会话等。
每个视图都可以绑定到单独的视图模型。
public class AddressVM
{
//properties for address page
}
public class BillingInfo
{
//properties for Billing Info page
}
public class OrderSummaryVM
{
public AddressVM ShippingAddress {set;get;}
public BillingInfo BillingDetails {set;get;}
}
摘要页面可以绑定到OrderSummaryVM
类,而单个页面可以绑定AddressVM
到BillingInfoVM
类
您正在寻找的是如何在 MVC 应用程序中管理会话。
有几种方法可以做到这一点。
您可以使用ViewData、ViewBag、TempData 或 Session
另一种方法是只有一页包含六种表格。用户将使用 javascript 浏览表单以显示/隐藏适当的内容。最后,他会将所有数据提交给您的控制器。您可以将数据保存在 cookie 中,这样如果他关闭并重新打开浏览器,他仍然可以看到他输入的内容。