ValidationMessage在TryValidateModel之后无法正常工作

时间:2018-05-20 02:50:47

标签: asp.net-mvc

我有一个包含对象集合的视图模型。我的操作可以修改其中的一些对象,然后我需要重新验证模型。我用:

 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做一些不同的事情。有什么帮助吗?

0 个答案:

没有答案