以下のリンクには、アプリケーションで使用している複数のテキストボックスを追加できる追加ボタンがあります。
http://jsfiddle.net/cN5SR/200/
次に、文字列値の配列をViewModelにバインドする方法を知りたいと思います。
ViewModelのプロパティが次のようになっているとしましょう。
Public class MyViewmodel
{
Public string[] players { get; set; }
}
以下のリンクには、アプリケーションで使用している複数のテキストボックスを追加できる追加ボタンがあります。
http://jsfiddle.net/cN5SR/200/
次に、文字列値の配列をViewModelにバインドする方法を知りたいと思います。
ViewModelのプロパティが次のようになっているとしましょう。
Public class MyViewmodel
{
Public string[] players { get; set; }
}
静的に実行した場合、Razor構文を使用して次のように実行します。
@for(int i = 0; i < Model.players.Length; i++)
{
@Html.EditorFor(m => m.players[i]);
}
これにより、次のマークアップが生成されます。
<input class="text-box single-line" id="players_0_" name="players[0]" type="text" value="Bob" />
<input class="text-box single-line" id="players_1_" name="players[1]" type="text" value="Sam" />
したがって、次のようなJavaScriptを使用して2つの入力を追加し、それをコントローラーに投稿すると、デフォルトのバインダーは4つのアイテムを含むplayers配列を作成します。私はあなたがパターンを見ることを望みます。
<input class="text-box single-line" id="players_2_" name="players[2]" type="text" value="Pete" />
<input class="text-box single-line" id="players_3_" name="players[3]" type="text" value="Dirk" />
いくつかの課題があります。私は以前にこれを行ったことがあり、削除に関していくつかの問題がありました。この時点で、正確な問題とそれを修正するために何をしたかを思い出せません。
Steven Sandersonは、まさにこのテーマについて非常に素晴らしいブログ投稿を書きました。