У меня есть модель представления, которая содержит коллекцию объектов.Мое действие может изменить некоторые из этих объектов, а затем мне нужно повторно проверить модель.Я использую:
ModelState.Clear();
foreach (QuestionDTO d in model.Questions)
TryValidateModel(d);
Проблема в том, что когда состояние модели недопустимо, 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.Любая помощь?