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 */
}
}
問題は、ネストされたユーザーも検証されることですが、これは投稿の更新であり、フォームにキャプチャ フィールドがないため、modelstate は常に無効です。投稿の値型プロパティのみを検証するにはどうすればよいですか?