如何在另一个模型中检查模型的验证?

时间:2015-04-27 14:24:40

标签: asp.net-mvc

我有一个包含其他模型集合的模型。

public class CompanyViewModel
{
..
..
  public List<EmployeeViewModel> Employees {get;set;}
}

public class EmployeeViewModel
{
   [Required]
   public string Username {get;set;}
}

现在在我的Post方法中,如何检查EmployeeViewModel是否有效?

我会有一个动态的员工数量,所以如果其中任何一个未通过验证,我只是不会添加它们。

[HttpPost]
public ActionResult Update(CompanyViewModel model)
{
    ...
    foreach(var emp in model.Employees)
    {
       // emp valid???????????
       if(  )
       {
         employeeDao.save(emp);
       }
    }
    ....

} 

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码。

[HttpPost]
public ActionResult Update(CompanyViewModel model)
{
if (ModelState.IsValid && (model.Employees !=null && model.Employees.Count >0))
            {
                foreach (var item in model.Employees)
                {
                    if(!string.IsNullOrEmpty(item.Username))
                        employeeDao.save(emp);

                }

            }
}

答案 1 :(得分:0)

关键是使用ModelState.IsValid。这将获取任何数据注释违规,例如你的班级和子类中的[Required]