【发布时间】:2010-10-17 22:46:29
【问题描述】:
我正在开发 asp.net mvc 应用程序。我在表单上有一个部分,当用户单击“添加新部件”按钮时,我会在其中动态添加一些文本框。问题是当我提交表单时,我没有从我动态添加的字段中获取数据。我将 FormCollection 传递给我的控制器并单步执行调试器中的代码,但这些字段不存在。如果我在萤火虫中看它们,我会很好地看到它们。有任何想法吗?
这是用于将文本字段添加到页面的 javascript:
function moreFields() {
var newFields = document.getElementById('readrootpu').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i = 0; i < newField.length; i++) {
var theName = newField[i].name
if (theName)
newField[i].name = theName;
}
var insertHere = document.getElementById('newpartusageitems');
insertHere.parentNode.insertBefore(newFields, insertHere);
}
这里是html:
<div id="readrootpu" class="usedparts" style="display: none">
<% var fieldPrefix = "PartUsage[]."; %>
Part ID:
<%= Html.TextBox(fieldPrefix + "ID", "")%>
Serial Number:
<%= Html.TextBox(fieldPrefix + "Serial", "")%>
Quantity:
<%= Html.TextBox(fieldPrefix + "Quantity", "") %>
<input type="button" value="Remove" onclick="this.parentNode.parentNode.removeChild(this.parentNode);" />
</div>
当我用 firebug 检查 html 时,它看起来不错:
Part ID: <input type="text" name="PartUsage[].ID" id="PartUsage[]_ID" value="" />
Serial Number: <input type="text" name="PartUsage[].Serial" id="PartUsage[]_Serial" value="" />
Quantity: <input type="text" name="PartUsage[].Quantity" id="PartUsage[]_Quantity" value="" />
想法?
【问题讨论】:
-
生成的 HTML 是什么样的?
标签: c# asp.net jquery asp.net-mvc