ModelState清除,删除数组项,TryValidateModel

时间:2012-12-10 07:55:53

标签: asp.net-mvc modelstate

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

  1. 在第一次操作时,所有事情都是好的(验证完成)
  2. modelState.Clear
  3. 删除状态为“删除”的数组中的项目
  4. 使用TryValidateModel验证精炼模型
  5. 这项工作适用于除数组属性

    之外的所有模型

    行动代码:

    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; }          
    }
    

0 个答案:

没有答案