0

我正在使用 C# MVC。我之前创建了一个表单,所需的所有数据都在一个表单上。一旦用户填写完毕,它就会进入控制器,控制器将数据插入到数据库表中。

我将如何处理字段位于 3 个不同页面上的情况。在第 3 页,我喜欢提交。数据如何保存?

会话变量也可以用于与许多页面共享的数据吗?

4

4 回答 4

0

如果您执行向导风格的工作流程,您可以只ViewModel为每个页面设置一个,并且随着用户进入每个页面,将每个页面存储ViewModel在一个Session变量中。然后在完成后,您可以从中获取所有模型,Session然后将值聚合到您完成的表单状态中。

另一种方法是,对于POST将页面数据保存到数据存储中以便用户浏览每个页面的每个调用服务,实体通过某些服务填充并存储在您的数据库中。

于 2012-08-23T15:26:45.610 回答
0

您可以使用不同的视图,或者使用一个带有选项卡式 UI 的视图,并使用三个部分视图作为每个选项卡的内容作为替代方案。

您可以使用会话,但您必须确保他们能够在 20 分钟的时间限制内完成内容;只要发生回发,就会重置该限制。

于 2012-08-23T15:27:52.947 回答
0

可以只使用一个局部视图来吐出一个具有所有 3 个页面的属性的 ViewModel,然后使用 jQuery 向导插件(或者您可能正在编写自己的插件)来简单地操作 DOM 以将每个页面显示/隐藏为 NEXT /PREVIOUS 按钮被单击。它仍将是一个单一表格的一部分。然后点击提交将回发到您的控制器方法,例如使用带有序列化 JSON 的 $.ajax() POST。

于 2012-08-23T21:31:53.303 回答
0

如果您在向导中的所有 3 个页面之间共享视图模型,则可以在页面上部署 HiddenFor 字段以保留在向导的该页面上不可见的信息。

这将在整个向导中保留在其他表单上输入的数据字段,并且不依赖 Session 来存储信息。

于 2015-09-15T10:08:33.760 回答