asp.net mvc复杂表单如何存储它们

时间:2011-06-09 13:10:24

标签: asp.net-mvc-3

我还是MVC的新手,我的项目中有一个复杂的表单。表单是学生表单,包含所有常用字段,如名字,姓氏等。在表单上,​​还需要添加多个地址&这个学生的笔记并显示出来。一旦提供了所有内容,它就会将学生的其他数据保存到多个表中(我有单独的地址表和注释表)。

目前当用户点击添加地址按钮时,我使用jquery弹出一个地址对话框,一旦用户完成表单,我使用ajax将数据保存到会话中,同样适用于注释。我有点担心,第一次会议可能会过期。第二,我的形式比我描述的更复杂,因此会话中会有很多数据在webform中我很难使用它。

那么有人可以给我一个更好的解决方案吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

如何使用javascript在本地存储所有数据并在最后一步之后将其全部发送出去?要么是这样,要么逐步将每个部分添加到数据存储中,这听起来像你不想做的那样。

我认为你为此避免使用会话是正确的。

答案 1 :(得分:0)

有一篇文章here,它描述了在mvc中创建向导的过程。 这似乎是一个很好的解决方案,因为作者使用jQuery来实现它的“向导形式”。

答案 2 :(得分:0)

“我使用jquery弹出一个地址对话框,一旦用户完成表单,我使用ajax将数据保存到会话中,同样适用于笔记。”

为什么不让弹出窗口进入开启者,找到表单,并附加隐藏的表单字段?更好的是,只需使用jquery将可见的表单字段添加到表单中。

Model binding to a list有一个示例:

<form method="post" action="/Home/Create">

<input type="text" name="[0].Title" value="Curious George" />
<input type="text" name="[0].Author" value="H.A. Rey" />
<input type="text" name="[0].DatePublished" value="2/23/1973" />

<input type="text" name="[1].Title" value="Code Complete" />
<input type="text" name="[1].Author" value="Steve McConnell" />
<input type="text" name="[1].DatePublished" value="6/9/2004" />

<input type="text" name="[2].Title" value="The Two Towers" />
<input type="text" name="[2].Author" value="JRR Tolkien" />
<input type="text" name="[2].DatePublished" value="6/1/2005" />

<input type="submit" />