【发布时间】:2012-06-05 12:48:24
【问题描述】:
我有一些解决这个问题的想法,但这一定是一个相对常见的事情,我想知道是否有一个“标准”的方法来解决它。
基本上,我在 HTML 页面上有一个表单,它使用 jQuery AJAX 发布到 ASP.NET 页面,然后获取表单字段并将它们放入数据库。
表单本身包含一些标准字段,例如文章标题、文章内容和日期。但是,该表格还允许添加许多作者详细信息,包括作者姓名、作者电子邮件地址、作者年龄。所以在表单上,用户填写表单标题和内容字段,并可以添加一个或多个作者,这些字段是使用 jQuery.clone() 动态构建的。
所以作者的数量未知,因此接受表单帖子的 .NET 控件不知道它应该接收哪些字段。
标准表单详细信息被添加到一个称为“文章”的表中。每个作者都被单独添加到不同的表中,称为“作者”。
所以问题是,处理这类事情的最佳方法是什么?
在这里感谢您的任何建议。
编辑:
要添加我最初的想法...首先,我可以用递增的数字命名每个作者表单字段,如下所示:
<fieldset>
Author 1 name: <input name="name-1" /><br />
Author 1 email: <input name="email-1" /><br />
Author 1 age: <input name="age-1" />
</fieldset>
<fieldset>
Author 2 name: <input name="name-2" /><br />
Author 2 email: <input name="email-2" /><br />
Author 2 age: <input name="age-2" />
</fieldset>
还有一个名为“作者数量”的隐藏字段,当 jQuery 脚本添加/删除新作者字段集时,该字段会递增/递减。然后在接收表单帖子的 .NET 代码中,我可以遍历从 0 到 x 的每个表单字段(其中 x 是“作者数”的值。这里的困难是我必须重新索引删除字段集时的每个表单字段,以防用户删除第一个字段集。
我的第二个想法是,我可以使用 jQuery 序列化将表单字段值序列化为单个字符串,然后将该字符串处理回 .NET 代码中的对象。虽然我真的不知道该怎么做,但我相信这是可能的。
在这种情况下人们的建议是什么?
【问题讨论】:
标签: asp.net forms dynamic insert design-patterns