У меня была похожая ситуация, вот как я ее обработал:
Сторона сервера
Когда произошел POST, я перебрал все значения полей и сделалВалидация на основе правил валидации, которые были у меня на моих объектах.Затем вы можете просто добавить ModelErrors в объект Field.
Поскольку вы перемещаете объект Template в представление, вы можете получить доступ к полям по имени Fields[x].SomeProperty
.Убедитесь, что у вас есть ValidationMessageFor
для SomeProperty
ModelState.AddModelError("Fields[x].SomeProperty", "The Error Message you want to show.);
Клиентская сторона
Убедитесь, что ваша форма имеет Id, чтобы вы могли получить доступ к методу Validate ().Затем вы перебираете все поля и просто добавляете проверку по своему усмотрению.
Для всех правил проверки проверьте документацию Jquery для проверки.
$('#frmYourForm').validate();
for (var i = 0; i < 'CountOfAllFields'; i++)
{
$('#Fields_' + i + '__Foo').rules('add', { required: true, messages: { required: 'The Foo field is required'} });
$('#Fields_' + i + '__Bar').rules('add', { required: true, messages: { required: 'The Bar field is required'} });
}
Я надеюсь, что помог вам на вашем пути!
Ps, используйте FireBug, чтобы помочь вам найти правильные имена свойств и вот как вы можете связать их с ошибками ModelEstate и т.д.