【发布时间】:2019-04-09 08:21:17
【问题描述】:
我有一个包含列表的视图模型,例如:
class School
{
public List<Student> Students { get; set; }
}
class Student
{
public int Id { get; set; }
public String Name { get; set; }
}
我有一个表单,我在该表单上提交与单个学校相关的多个学生信息。现在我可以在表单中添加/删除单个学生。
添加工作正常,但我的问题和我的问题与删除学生有关。
所以让我用一个例子来解释一下:
假设我添加了 3 个学生,那么名称和 ID 将以这种方式绑定到模型:
Students[0].Id = "1"
Students[0].Name = "Student A"
Students[1].Id = "2"
Students[1].Name = "Student B"
Students[2].Id = "3"
Students[2].Name = "Student C"
如果我保存它就可以了。但是可以说我删除了学生 Id =“2”。提交时发生的事情是只有 id =“1”的学生 在删除索引(即 id="3" 的学生)未绑定后正在绑定和休息。
我的问题是:删除 id="2" 后是否可以绑定 id="3" ? 或者在适当的情况下,是否可以绑定/提交带有跳过索引的列表。
我发现下面提到的关于 stackoverflow 本身的文章,但我可以从中推断出有点矛盾,或者我可能没有正确理解它们。
我不擅长解释问题。所以请告诉我是否可以添加任何内容以使其更具描述性。
谢谢你。
示例删除代码:
Fiddle for delete Js code
【问题讨论】:
-
目前作为修复,我在我的学生模型中添加了一个名为 IsDeleted 的布尔属性,单击删除按钮时,我只是将其设为 IsDeleted 并隐藏 Ui 中的内容
-
“绑定”是什么意思,您是说当您删除 ID=2 的学生时,ID=3 也会从列表中删除?您的所有列表索引也是 0,可能是错字?
-
另外,如果您可以发布添加/删除项目的代码,它会更有用,没有代码很难判断问题出在哪里
-
绑定是指点击“提交”按钮时发布的值。因此,如果我删除 Id = "2" 的学生,则只有 Student[0].Id 和 Students[0].Name 会发布到服务器,而其余的则不会发布
-
我已经为添加/删除添加了简单的 html/js 代码。因此,如果我在索引 [3] 处添加 5 个学生并删除 1,那么只会发布索引 [2] 之前的值。希望这更有用。