发布新的复选框列表时,复选框列表不会被覆盖。

问题描述 投票:0回答:1

我在ASP.NET Core 3.1中创建了一个复选框列表。用户选择了一个复选框,基于选择的新项目(复选框)被加载到视图中。

问题是,即使在加载新的列表后,原来的复选框列表的一部分仍然存在。

视图如下。

enter image description here

下图是带有选择的原始视图。我揭示了Text和Value属性,以帮助显示复选框列表的哪些属性,没有被刷新。

enter image description here

可以看到(注意高亮部分),Groceries被选中,Apparel&More的 "值 "是Apparel&More。

提交表单后,视图变为如下。

enter image description here

请注意,在这个视图中,"杂货 "仍然被选中,第三个复选框中的 "值 "与之前的视图相同。不过根据上传的视图模型,它们应该已经发生了变化。

下面我展示了发布到控制器和各个实体的视图模型。enter image description here

在这里输入图像描述

enter image description here

enter image description here

enter image description here

而下面我展示的是返回的视图模型的值是什么?enter image description here

enter image description here

enter image description here

而这个是很重要的,因为这才是螺丝钉开始发生的地方。这个类别没有正确加载......enter image description here

请在这里输入图片描述

enter image description here

所以综上所述,第二类目 "杂货 "在上传新值后仍然被选中。 服装&更多 "类别的值似乎对 "新鲜食品 "的新值持续存在。

我试过了所有能找到的关于重置页面、防止缓存等方法,但我想不通为什么会出现这种情况。我甚至尝试在提交后使用jQuery清除所有输入元素,但结果还是一样,不知为何原来的复选框列表不想死。希望得到任何帮助。

asp.net checkbox checkboxlist
1个回答
0
投票

我设法隔离了这个问题,并想出了一个解决方案,如下所示。

enter image description here

输入元素的现有 "值 "属性显然是持久的,除非特别更新。所以如上图所示,我为这些属性添加了显式值,从而解决了这个问题。

在加载文档时使用jQuery解决了复选框的重置问题。

虽然我有一个工作版本,但如果能解释为什么 "值 "属性会持续存在,我将非常感激。

© www.soinside.com 2019 - 2024. All rights reserved.