我正在处理一个 ASP.NET 页面,该页面有一个单击按钮,该按钮为用户添加了一个新的标记部分(标记部分是下拉列表、文本框和文本区域的组合)。用户可以添加任意数量的这些部分,键入数据并将其提交到服务器。
我可以实现这一点的一种方法是在标记中隐藏此部分的模板并在客户端复制它。在提交表单时,我可以遍历标记并发布用户输入的值。
有没有更好的方法来做到这一点?我能想到的另一种方法是使用用户控件并在服务器端动态添加它们。
PS:我正在使用 ASP.NET 4.0 Webforms、JQuery 等
我正在处理一个 ASP.NET 页面,该页面有一个单击按钮,该按钮为用户添加了一个新的标记部分(标记部分是下拉列表、文本框和文本区域的组合)。用户可以添加任意数量的这些部分,键入数据并将其提交到服务器。
我可以实现这一点的一种方法是在标记中隐藏此部分的模板并在客户端复制它。在提交表单时,我可以遍历标记并发布用户输入的值。
有没有更好的方法来做到这一点?我能想到的另一种方法是使用用户控件并在服务器端动态添加它们。
PS:我正在使用 ASP.NET 4.0 Webforms、JQuery 等
您甚至不需要将其隐藏在标记中,您只需将 HTML 存储为 JS 变量即可。
我能看到的唯一障碍是,由于 ASP.NET 模型绑定器需要数组中的变量名称(根据您的描述,听起来您将接受一个部分数组)以使用索引(例如<input name="Section[0].DropDownValue>
)显式限定,您[0]
在将 HTML 片段添加到 DOM 之前,需要用新的、动态生成的值替换“主副本”中的占位符索引(例如)。
这可能不是绝对最好的方法,但在我的脑海中,您可以为提交按钮的单击事件分配一个事件处理程序,并使用 JavaScript 将任何非原始数据值与其他数据值一起发送。