Вы можете использовать Валидатор для этого.
var context = new ValidationContext(u, serviceProvider: null, items: null);
var validationResults = new List<ValidationResult>();
bool isValid = Validator.TryValidateObject(u, context, validationResults, true);
Я сделал запись в Документации переполнения стека, объясняющую, как это сделать:
Любая проверка требует контекста, чтобы дать некоторую информацию о том, что проверяется. Это может включать различную информацию, такую как проверяемый объект, некоторые свойства, имя, отображаемое в сообщении об ошибке и т. Д.
ValidationContext vc = new ValidationContext(objectToValidate); // The simplest form of validation context. It contains only a reference to the object being validated.
После создания контекста существует несколько способов проверки.
ICollection<ValidationResult> results = new List<ValidationResult>(); // Will contain the results of the validation
bool isValid = Validator.TryValidateObject(objectToValidate, vc, results, true); // Validates the object and its properties using the previously created context.
// The variable isValid will be true if everything is valid
// The results variable contains the results of the validation
ICollection<ValidationResult> results = new List<ValidationResult>(); // Will contain the results of the validation
bool isValid = Validator.TryValidatePropery(objectToValidate.PropertyToValidate, vc, results, true); // Validates the property using the previously created context.
// The variable isValid will be true if everything is valid
// The results variable contains the results of the validation
Чтобы узнать больше о проверке вручную, см. :
Поскольку вопрос задается конкретно о ASP.NET MVC, вы можете использовать TryValidateObject
внутри своего действия Controller
.
Требуемая перегрузка метода: TryValidateModel(Object)
Проверка указанного экземпляра модели.
Возвращает true, если проверка модели прошла успешно; в противном случае неверно.
Ваш измененный исходный код
[HttpPost]
public ActionResult NewUser(UserViewModel userVM)
{
User u = new User();
u.Name = null;
if (this.TryValidateObject(u))
{
TempData["NewUserCreated"] = "New user created sucessfully";
return RedirectToAction("Index");
}
return View();
}