gpt4 book ai didi

c# - 绑定(bind)到列表 ASP.NET MVC 动态 jQuery 索引

转载 作者:太空狗 更新时间:2023-10-29 15:04:49 27 4
gpt4 key购买 nike

我有一组动态创建的列表元素。这些列表元素中的每一个都包含一个输入文本,我想将其值传递给 Controller ​​。

HTML

<ul id="list"></ul>
<button id="add">Add</button>

<script>
var counter = 1;

$('#add').click(function () {
var text = '<input type="text" name="(what should I put here?)"></input>';
var li = '<li>' + text + '</li>';

$(li).appendTo('#list');
counter++;
return false;
});
</script>

查看模型

public IEnumerable<string> list {get; set;}
...

如何将这些值隐式绑定(bind)到我的 ViewModel?我试图使用 counter 变量为每个创建的元素分配一个名称(如 list[counter]),但在 Controller 端 list 变量仍然是空的。

最佳答案

首先,我会根据您的未排序列表中的 li 数量来计算您的计数器:

$('#list > li').size()

然后为了让模型 Binder 开心,用列表预先修复你的属性:

'<input type="text" name="list[' + counter + ']"></input>'

完整的代码变成了:

$('#add').click(function () {
var counter = $('#list > li').size();
var text = '<input type="text" name="list[' + counter + ']"></input>';
var li = '<li>' + text + '</li>';

$(li).appendTo('#list');
return false;
});

jsFiddle

请注意,您必须将 View 模型属性更改为 IListList 才能使索引也起作用:

public IList <string> list {get; set;}

关于c# - 绑定(bind)到列表 ASP.NET MVC 动态 jQuery 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188108/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com