这是我在stackoverflow的第一个问题,经过许多搜索,但我仍然有一个奇怪的ASP MVC问题。删除列表<Model>(ASP MVC 5)
我有一个包含输入的窗体中的视图显示列表。 我想允许用户删除一个或多个元素,通过检查它并应用于提交。
的型号:
public class MTest
{
public string Nom { get; set; }
public bool Delete { get; set; }
}
控制器:
public partial class TestController : Controller
{
public virtual ActionResult Index()
{
List<MTest> m = new List<MTest>();
m.Add(new MTest() { Nom = "A", Delete = false });
m.Add(new MTest() { Nom = "B", Delete = false });
m.Add(new MTest() { Nom = "C", Delete = false });
m.Add(new MTest() { Nom = "D", Delete = false });
return View(m);
}
[HttpPost]
public virtual ActionResult Index(List<MTest> model)
{
model.RemoveAll(f => f.Delete == true);
return View(model);
}
}
的观点:
@model List<MTest>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@for (int i = 0; i < Model.Count; i++)
{
@Html.EditorFor(model => model[i].Delete)
@Html.EditorFor(model => model[i].Nom, new {
}
<input type="submit" value="Save" />
}
目前,如果我检查“B” MTest
元件(用于删除的话),我可以看到它disapear当我通过在ActionResult Index(List model)
步骤运行步骤。 但进入视图:结果是不一样的,我不明白为什么(见插图)。
可以somenone帮助我吗?
非常感谢!