在下面的链接中有添加按钮,它允许您添加我在我的应用程序中使用的多个文本框。如何使用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