我有以下控制器操作,它会验证模型列表
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);
}
该函数正确验证列表中的每个模型,但将错误添加到模型状态。如果验证出错,如何从列表中的每个字段显示此错误?我应该以另一种方式进行验证吗?
这样我可以从ModelState为每个字段打印每个错误,但不会在每个字段附近显示它们。
这是我的观点的一个字段:
@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 :(得分:0)
似乎如果我以这种方式进行验证,它就可以了。我不知道你可以对整个系列进行验证。
if (ModelState.IsValid)
{
foreach (var item in list)
{
...
db.SaveChanges();
}
}
还有其他更好的方式吗?