gpt4 book ai didi

c# - 如何在删除中间项目时绑定(bind) ASP.NET MVC 中的对象列表

转载 作者:太空狗 更新时间:2023-10-29 20:09:50 24 4
gpt4 key购买 nike

我在将模型绑定(bind)到 MVC 中的列表时遇到问题。我的页面具有动态添加和删除文本框的功能。我的页面 HTML 将是

<form id="prdt">
<div id="div_0"> <input type="text" name="products[0].Name" value="Coffee"/><button id="0" onclick="return DeleteLocation(this.id)">Delete</button></div>
<div id="div_1"> <input type="text" name="products[1].Name" value="Tea" /><button id="1" onclick="return DeleteLocation(this.id)">Delete</button></div>
<div id="div_2"> <input type="text" name="products[2].Name" value="Cola" /><button id="2" onclick="return DeleteLocation(this.id)">Delete</button></div>
<div id="div_3"> <input type="text" name="products[3].Name" value="Pepsi" /><button id="3" onclick="return DeleteLocation(this.id)">Delete</button></div>
</form>

下面是删除文本框的代码

<script type="text/javascript">
function DeleteLocation(id) {
$("#div_" + id).remove();
}
</script>

但是当我删除“Cola”文本框并执行 ajax post 时,我的列表中只得到 Coffee 和 Tea(Controller Action Post)。即列表中省略了最后一个

同样,当我删除“Tea”文本框并发布 ajax 帖子时,我只得到 Coffee。即其他三个值被排除在列表中。

我认为列表与列表索引绑定(bind)。即使删除了中间的任何项目,是否有任何方法可以获取所有值。

最佳答案

这可以通过添加名为 products.Index 的特殊字段以及下一个索引的值来完成。您需要为每个新索引重复该操作:

<form id="prdt">
<div id="div_0">
<input type="hidden" name="products.Index" value="0" />
<input type="text" name="products[0].Name" value="Coffee"/>
<button id="0" onclick="return DeleteLocation(this.id)">Delete</button>
</div>
<div id="div_1">
<input type="hidden" name="products.Index" value="1" />
<input type="text" name="products[1].Name" value="Tea" />
<button id="1" onclick="return DeleteLocation(this.id)">Delete</button>
</div>
<div id="div_2">
<input type="hidden" name="products.Index" value="2" />
<input type="text" name="products[2].Name" value="Cola" />
<button id="2" onclick="return DeleteLocation(this.id)">Delete</button>
</div>
<div id="div_3">
<input type="hidden" name="products.Index" value="3" />
<input type="text" name="products[3].Name" value="Pepsi" />
<button id="3" onclick="return DeleteLocation(this.id)">Delete</button>
</div>
</form>

您可以在 this article 中找到更多信息,“非顺序索引”部分

关于c# - 如何在删除中间项目时绑定(bind) ASP.NET MVC 中的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29864980/

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