2012-04-06 76 views
2

在下面的链接中有添加按钮,它允许您添加我在我的应用程序中使用的多个文本框。如何使用ViewModel数组字符串属性绑定多个文本框?

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

现在我想知道我怎么可以绑定的字符串值的数组与我的视图模型。

比方说,如果我在视图模型属性如下:

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

如果所有的文本框被命名为“播放器”,ModelBinder会将每个文本框的值添加到数组中。另一种选择是给每个文本框命名一个索引:players [0],players [1]等,但是你需要管理索引而不是跳过一个 – 2012-04-06 01:01:05

+0

你的意思是默认情况下它将数组字符串? – updev 2012-04-06 01:07:13

+0

如果每个文本框是相同的名称,你基本上冒充“player = player1&player = player2&player = player3”,这将导致该数组由ModelBinder自动构建 – 2012-04-06 01:13:53

回答

0

Steven Sanderson在这个问题上写了一个very nice blog post

+0

虽然这个答案已经过了一年多了,如果你在这里,在这个网站上发布了答案的重要部分,或者你的帖子风险被删除了,那么这样做会更好一些[参见常见问题解答,其中提到的'仅仅是一个链接'的答案。](http:/ /stackoverflow.com/faq#deletion)如果您愿意,您可能仍然包含该链接,但仅作为“参考”。答案应该独立,不需要链接。 – Taryn 2014-11-04 10:46:46

1

如果我做到了静态,我会用剃刀语法如下做到了。

​​

这将导致下面的标记:如果您添加使用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" /> 

有一些挑战。我之前已经完成了这个工作,并且在删除时遇到了一些问题。我不记得确切的问题,以及我在这一点上做了什么来解决它。

相关问题