2012-04-06 21 views
2

下のリンクには、自分のアプリケーションで使用している複数のテキストボックスを追加できる追加ボタンがあります。複数のテキストボックスをViewModel配列文字列プロパティでバインドするにはどうすればよいですか?

http://jsfiddle.net/cN5SR/200/

今、私は私のViewModelに文字列値の配列をバインドする方法を知りたいです。

のは、ViewModelにで私の財産は、以下の通りである場合としましょう:私は静的にそれをしなかった場合はカミソリの構文を使用して、次のように

Public class MyViewmodel 
{ 
    Public string[] players { get; set; } 
} 
+1

すべてのテキストボックスの名前が「プレーヤー」の場合、ModelBinderは各テキストボックスの値を配列に追加します。もう1つの方法は、各テキストボックスにplayers [0]、players [1]などの名前を付けることですが、インデックスを管理してスキップする必要はありません。 –

+0

デフォルトで配列文字列を作るのですか? – updev

+0

各テキストボックスが同じ名前であれば、基本的に "player = player1&player = player2&player = player3"というポーズをとり、ModelBinder –

答えて

0

スティーブンサンダーソンはこの件名に「very nice blog post」と書いています。

+0

によって配列が自動生成されます。この回答は1年以上経過していますが、このサイトの回答の重要な部分を投稿したり、投稿のリスクを削除したりすると、より良い結果が得られます[「リンクよりもはるかに多い」回答が記載されているFAQを参照してください。](http:必要に応じてリンクを含めることができますが、「参照」としてのみリンクを含めることができます。答えは、リンクを必要とせずに単独で立つべきです。 – Taryn

1

、私はそれを行っているでしょう。

​​

これは、次のマークアップにつながる:

<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で選手の配列を作成します。アイテム。私はあなたがそのお散歩を見て願っています。

<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" /> 

いくつかの課題があります。私は以前これをして、削除の周りにいくつかの問題があった。私はこの時点で正確な問題とそれを修正するために何をしたのか覚えていません。

関連する問題