Ich habe eine Reihe von Listenelementen, die ich dynamisch erstellen. Jedes dieser Listenelemente enthält einen Eingabetext, dessen Wert ich an den Controller übergeben möchte.Bindung zur Liste ASP.NET MVC dynamischen jQuery Index
HTML
<ul id="list"></ul>
<button id="add">Add</button>
<script>
var counter = 1;
$('#add').click(function() {
var text = '<input type="text" name="(what should I put here?)"></input>';
var li = '<li>' + text + '</li>';
$(li).appendTo('#list');
counter++;
return false;
});
</script>
Ansicht Modell
public IEnumerable<string> list {get; set;}
...
Wie kann ich diese Werte an meine Viewmodel binden implizit? Ich habe versucht, die counter
Variable zu verwenden, um einen Namen zu jedem Elemente erstellt (wie list[counter]
) zuweisen, aber auf der Steuerungsseite die list
Variable auf meinem Viewmodel kommt noch leer.
Ich bin wirklich kein Fan von html wie diese zu schaffen, IMHO ist es eine schlechte Praxis und schafft artifical Kopplung zwischen Schichten/Sprachen. Sie sollten auch Ihre Controller-Methoden Signaturen enthalten. –
Ist Ihre Aktionsmethode wie 'MyAction (string [] mylist)'? –
@ErikPhilips Ich werde die Post so bald wie möglich aktualisieren (wahrscheinlich morgen). Ich bin auch kein Fan von dieser Art von Code, aber wenn Sie einen besseren Vorschlag haben, bitte, weisen Sie mich darauf :) –