При использовании «ненавязчивой» (unobtrusive) валидации форм в MVC проекте можно заметить, что если валидируемая форма была подгружена асинхронно, то валидация не сработает.
Поэтому после обновления частей страницы, содержащих формы, надо не забывать выполнить что-нибудь подобное:
$.validator.unobtrusive.parse($("#loadedContent"));
(где #loadedContent — это айдишник подгруженной области).
В простейшем случае можно даже добавить этот код в обработчик события ajaxSuccess, чтобы уж точно не забыть :)
$.ajaxSuccess(function(e) { $.validator.unobtrusive.parse(document); });
P.S. Заметить факт неработоспособности клиентской валидации может с легкостью помешать принцип graceful degradation — по-умолчанию валидация отработает нормально, но это будет серверная валидация :) При тестировании на localhost это и правда можно не заметить.
Традиционный пример проекта с этой небольшой функцией.