Насколько я могу судить, все все еще пытаются найти "стандартный" способ сделать это. Тем не менее, обязательно посмотрите последние посты Фила Хаака и Скотта Гатри на MVC, и вы найдете интересную информацию о том, как они это сделали. Когда я просто поиграл с этим для себя, я создал ModelBinder для сгенерированного мной класса данных LinqToSql. Вы можете проверить этот пост, чтобы узнать, как собрать базовый ModelBinder:
Связующее для модели ASP.Net MVC
Если в вашем действии, если вы создали ModelBinder «Product», вы просто объявите действие следующим образом:
public ActionResult New (Product product)
И механизм связывания позаботится о присвоении опубликованных данных свойствам объектов, если вы все равно правильно их построите.
После этого в вашем методе GetValue () вы можете реализовать любую проверку, какую захотите, с использованием исключений, регулярных выражений или как угодно, например:
(ModelStateDictionary_name) .AddModelError ("form_element_id", "enter_value", "error_message");
Затем вы можете просто добавить <% = Html.ValidationSummary ()%> в ваше представление, чтобы отобразить все ваши ошибки.
Для проверки на стороне клиента я просто использовал jQuery. После того, как вы настроите базовый пример, вы можете начать делать некоторые интересные вещи, комбинируя все это с частичными представлениями и вызовами Ajax.