2014-02-22 143 views
0

我有我的验证模型MVC模型验证和打印错误

public ActionResult Translate(int RoleId, ICollection<RTFM> list) 
     { 
      bool IsValid = true; 
      foreach (var item in list) 
      { 
       ModelState.Clear(); 
       TryValidateModel(item); 
       if (!ModelState.IsValid) 
       { 
        IsValid = false; 
       } 
      } 
      if (IsValid) 
      { 
       foreach (var item in list) 
       { 
        ... 
        db.SaveChanges(); 
       } 
       return RedirectToAction("Translate", new { Id = RoleId }); 
      } 
      ViewBag.RoleId = RoleId; 
      return View(list); 
     } 

该函数正确验证从我的列表中的每个模型的列表,但增加了误差模型状态下控制器动作。如果验证出错,如何从列表中的每个字段显示此错误?我应该以另一种方式进行验证吗?

这样我就可以从模型状态打印每个字段的每个错误,但它们不会在每个字段附近显示。

这是我的视场的模样:

@Html.ValidationSummary(true) 

... 
<div class="form-group"> 
         @Html.LabelFor(model => model[i].Name, new { @class = "control-label col-md-2" }) 
         <div class="col-md-10"> 
          @Html.TextAreaFor(model => model[i].Name) 
          @Html.ValidationMessageFor(model => model[i].Name) 
         </div> 
        </div> 

回答

0

看来,如果我做验证这种方式,它的工作原理。我不知道你可以对整个系列进行验证。

if (ModelState.IsValid) 
      { 
       foreach (var item in list) 
       { 
        ... 
        db.SaveChanges(); 
       } 
      } 

还有其他更好的方法吗?