Первый ответ является правильным в том, что вы можете перебрать коллекцию формы, чтобы получить значения динамически вставляемых полей в ваш элемент формы. Я просто хотел добавить, что вы можете использовать опрятной привязки.
Приведенный ниже код принимает динамический список текстовых полей, которые были отправлены против действия. Каждое текстовое поле в этом примере имеет то же имя, что и dynamicField
. MVC прекрасно связывает их с массивом строк.
Full .NET Fiddle: https://dotnetfiddle.net/5ckOGu
Пример кода (сниппеты для ясности) динамически добавлять выборочные поля
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div id="fields"></div>
<button>Submit</button>
}
<div style="color:blue"><b>Data:</b> @ViewBag.Data</div>
<script type="text/javascript">
$(document).ready(function() {
var $fields = $('#fields');
$('#btnAddField').click(function(e) {
e.preventDefault();
$('<input type="text" name="dynamicField" /><br/>').appendTo($fields);
});
});
</script>
Пример кода от действия, принимающие динамические поля в пост.
[HttpPost]
public ActionResult Index(string[] dynamicField)
{
ViewBag.Data = string.Join(",", dynamicField ?? new string[] {});
return View();
}
Скриншот выхода