在下面的鏈接中有添加按鈕,它允許您添加我在我的應用程序中使用的多個文本框。如何使用ViewModel數組字符串屬性綁定多個文本框?
http://jsfiddle.net/cN5SR/200/
現在我想知道我怎麼可以綁定的字符串值的數組與我的視圖模型。
比方說,如果我在視圖模型屬性如下:
Public class MyViewmodel
{
Public string[] players { get; set; }
}
在下面的鏈接中有添加按鈕,它允許您添加我在我的應用程序中使用的多個文本框。如何使用ViewModel數組字符串屬性綁定多個文本框?
http://jsfiddle.net/cN5SR/200/
現在我想知道我怎麼可以綁定的字符串值的數組與我的視圖模型。
比方說,如果我在視圖模型屬性如下:
Public class MyViewmodel
{
Public string[] players { get; set; }
}
Steven Sanderson在這個問題上寫了一個very nice blog post。
雖然這個答案已經過了一年多了,如果你在這裏,在這個網站上發佈了答案的重要部分,或者你的帖子風險被刪除了,那麼這樣做會更好一些[參見常見問題解答,其中提到的'僅僅是一個鏈接'的答案。](http:/ /stackoverflow.com/faq#deletion)如果您願意,您可能仍然包含該鏈接,但僅作爲「參考」。答案應該獨立,不需要鏈接。 – Taryn 2014-11-04 10:46:46
如果我做到了靜態,我會用剃刀語法如下做到了。
這將導致下面的標記:如果您添加使用JavaScript(如下所示),並張貼到控制器的兩個輸入
<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" />
所以,默認粘結劑將創建一個播放器陣列4項目。我希望你看到這個pat。。
<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" />
有一些挑戰。我之前已經完成了這個工作,並且在刪除時遇到了一些問題。我不記得確切的問題,以及我在這一點上做了什麼來解決它。
如果所有的文本框被命名爲「播放器」,ModelBinder會將每個文本框的值添加到數組中。另一種選擇是給每個文本框命名一個索引:players [0],players [1]等,但是你需要管理索引而不是跳過一個 – 2012-04-06 01:01:05
你的意思是默認情況下它將數組字符串? – updev 2012-04-06 01:07:13
如果每個文本框是相同的名稱,你基本上冒充「player = player1&player = player2&player = player3」,這將導致該數組由ModelBinder自動構建 – 2012-04-06 01:13:53