为什么我的模特会保留这个州?为什么会这样? 是不是应该刷新,因为我试图发送一个全新的模型实例?
这是一个例子:
如果我在postback
之后删除了中间的任何内容,则仍会选中该复选框
以下是我的代码:
这是我的回发代码:
[HttpPost]
public ActionResult Index(IEnumerable<Employee> emp)
{
EmployeeContext test = new EmployeeContext();
if (emp.Count(x => x.selected) == 0)
{
return View(test.Employees);
}
else
{
foreach (Employee del in emp)
{
if (del.selected)
{
Employee dummy = test.Employees.Single(x => x.id == del.id);
test.Employees.Remove(dummy);
test.SaveChanges();
}
}
return View(test.Employees);
}
}
如何删除该状态?我读了一些关于ModelState.Remove
的内容,所以我的想法是使用一个循环清除我的每个复选框,但我不确定这在性能方面是否会很好。我该怎么办?
答案 0 :(得分:0)
通过将其更改为Redirect
来修复:
[HttpPost]
public ActionResult Index(IEnumerable<Employee> emp)
{
EmployeeContext test = new EmployeeContext();
if (emp.Count(x => x.selected) == 0)
{
return RedirectToAction("Index");
}
else
{
foreach (Employee del in emp)
{
if (del.selected)
{
Employee dummy = test.Employees.Single(x => x.id == del.id);
test.Employees.Remove(dummy);
test.SaveChanges();
}
}
return RedirectToAction("Index");
}
}
完全致电:Stephen {Muecke PRG pattern
。
答案 1 :(得分:0)
如果您不希望模型状态在视图中保留其值,则不需要将模型传递到视图中 只需改变这个
return View(test.Employees);
到
返回View();