我有一个包含对象集合的视图模型。我的操作可以修改其中的一些对象,然后我需要重新验证模型。我用:
ModelState.Clear();
foreach (QuestionDTO d in model.Questions)
TryValidateModel(d);
问题是当modelstate无效时,ValidationMessageFor不再显示。当我使用默认验证而不清除它时,它确实有效。错误显示在验证中。
在cshtml页面中我有:
for (int i = 0; i < Model.Questions.Count(); i++)
{
@Html.EditorFor(m => m.Questions[i])
}
我有一个问题的编辑模板。编辑器模板中的代码示例:
<div class="form-group">
@Html.Raw(Model.QuestionText)<br />
@Html.MyCustomTextBoxFor(t => Model.AnswerText, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.AnswerText, "", new { @class = "text-danger" })
</div>
我尝试过使用TryValidateModel(model.Questions),但它似乎没有验证,因为该模型是有效的。我觉得我需要用TryValidateModel做一些不同的事情。有什么帮助吗?