La prima risposta è corretta in quanto è possibile iterare su una collezione modulo per ottenere i valori dei campi inseriti in modo dinamico all'interno il tuo elemento di forma. Volevo solo aggiungere che è possibile utilizzare un po 'di vincolante.
Il codice seguente accetta un elenco dinamico di caselle di testo che sono state pubblicate rispetto all'azione. Ogni casella di testo in questo esempio aveva lo stesso nome di dynamicField
. MVC li lega piacevolmente a una serie di stringhe.
completa .NET Fiddle: https://dotnetfiddle.net/5ckOGu
codice di esempio (snippet per chiarezza) aggiungendo dinamicamente Fields
@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>
codice di esempio l'azione accettando i campi dinamici in un post.
[HttpPost]
public ActionResult Index(string[] dynamicField)
{
ViewBag.Data = string.Join(",", dynamicField ?? new string[] {});
return View();
}
schermo di uscita

fonte
2015-03-03 02:13:32