System.ComponentModel.DataAnnotations属性を使用して、検証ルールを使用して他のオブジェクトを含むモデルを検証しようとしています。デフォルトのMVC実装で十分であると期待していました。
var obj = js.Deserialize(json, objectInfo.ObjectType);
if(!TryValidateModel(obj))
{
// Handle failed model validation.
}
オブジェクトはプリミティブ型で構成されていますが、DataAnnoticationsを使用する他のクラスも含まれています。そのようです:
public class Entry
{
[Required]
public Person Subscriber { get; set; }
[Required]
public String Company { get; set; }
}
public class Person
{
public String FirstName { get; set;}
[Required]
public String Surname { get; set; }
}
問題は、デジタルで作成された.net / Blog / 54 / deep-inside-asp.net-mvc-2で読み取ることができるように、ASP.NET MVC検証が1レベルしか下がらず、最上位クラスのプロパティのみを評価することです。 -model-metadata-and-validation。
誰かがこれに対するエレガントな解決策を知っていますか?xValを試しましたが、非再帰的なパターンを使用しているようです(http://blog.stevensanderson.com/2009/01/10/xval-a-validation-framework-for-aspnet-mvc/)。
誰かが前にこの問題に遭遇したに違いありませんか?Webサービスを設計している場合、モデル内のオブジェクトのネストはそれほど奇妙に見えません。