0

MVC3 モデルの検証と DataAnnotations に問題があります

私は次のクラスを持っています:

public class A
{
    public C SomeProperty {get;set;}
}

public class B
{
    [Required]
    public C SomeProperty {get;set;}
}
public class C
{
    [Required]
    public string SomeSubProperty {get;set;}
}

これは、一部のオブジェクトには C が必要であり、他のオブジェクトには不要な場合があるためですが、C が必要な場合は、SomeSubProperty も必要とする必要があります。

ただし、コントローラーで ModelState.IsValid を呼び出すと、A と B の両方をモデルとして使用すると、SomeSubProperty が設定されていない場合に false が返されます。この動作を生成する方法はありますか?

4

2 に答える 2

2

通常、「ドメイン モデル」と「ビュー モデル」を混在させません。

ドメイン モデルはビジネス関係を反映し、非常に複雑になる可能性がありますが、ビュー モデルは非常にフラットであり、深いレベルの依存関係がないため、注釈を使用できます。

于 2012-11-08T22:57:14.097 に答える
1

AutoMapperを見てください。各 ViewModel を特定の要件で定義し、検証が成功したら処理するためにそれをドメイン モデルにマップします。

于 2012-11-08T23:33:57.087 に答える