0

我的模型有一些属性,其中之一是类数组,对于模型和数组类中的某些属性,使用 datannotation 属性。在视图中,用户将某些行填充为数组和其他模型属性,并且可能会删除某些行(arrayProperty),我设置为已删除行状态:删除,并在操作中从数组中删除已删除行,操作步骤是:

  1. 在第一次行动中一切正常(验证完成)
  2. 模型状态.清除
  3. 删除数组中状态为删除的项目
  4. 使用 TryValidateModel 验证细化模型

这适用于模型中的所有属性,除了数组属性

动作代码:

public ActionResult Test(ViewModel model)
{
    ModelState.Clear();        
    model.Array = model.Array.Where(p => p.Status != false).ToArray();

    if(ModelState.IsValid){}
    TryValidateModel(model);

    return View();
} 

班级代码:

public class ViewModel
{
    public TestClass[] Array { get; set; }

    [Required]
    public string Family { get; set; }
}

public class TestClass
{
    [Required]
    public string Name { get; set; }
    public int? Age { get; set; }          
    public bool Status { get; set; }          
}
4

0 回答 0