Я пытаюсь проверить модель, содержащую другие объекты с правилами проверки, используя TryUpdateModel:
public class Post
{
public User User;
}
public class User : IValidatableObject
{
public string Captcha;
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (/* check if captcha valid */)
{
yield return new
ValidationResult("Captcha invalid.",
new[] { "Captcha" });
}
}
public ActionResult Edit(int postId, string title)
{
var post = postsRepository.Get(postId);
if (TryUpdateModel(post))
{
/* save */
}
}
Проблема в том, что вложенный пользователь также проверен, но это обновление сообщения, и нетполе captcha в форме, поэтому состояние модели всегда недопустимо.Как я могу проверить только свойства типа сообщения?