Я занимаюсь разработкой приложения 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>
Когда я проверяю html с помощью firebug, он выглядит нормально для меня:
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="" />
Мысли