Я наткнулся на что-то подобное самостоятельно и написал это точно, чтобы код был МЕНЬШЕ подробным.
У меня есть своя проверка, в которой я выполняю такие вещи, как:
Validation.IsNullOrEmpty(m => m.FirstName, modelState);
Validation.Validate(m => m.ZipCode, z => z.Length == 5, modelState,
"ZipCode must be 5 characters long");
Теперь это очень тесно связано с архитектурой MVC, которую я использую, но я считаю, что ее легче читать и поддерживать, чем:
if (string.IsNullOrEmpty(FirstName))
{
ModelState.AddError("FirstName", "FirstName cannot be empty.");
}
В этом контексте это не так заметно, но когда вывыполнить валидацию, вы можете иметь МНОГИЕ элементы для проверки, так что один вкладыш станет намного проще сканировать и выяснить, что делает проверка.
Вы впервые сталкиваетесь с первым кодом, который я поместилтам, и вы должны выяснить, что происходит, но как только вы это пройдете, я думаю, что куча одних вкладышей легче для глаз, чем несколько блоков, которые произведет второй метод.