2

次のようなコードで:

public class FooModel {

    public BarModel Bar { get; set; }

}

public class BarModel {

    [Required]
    public string Baz { get; set; }

}

FooModel.Barフォームでレンダリングしたいのですが、オプションにします。ただし、フォームは、のテキストボックスに入力しないと送信されませんBarModel.Baz。ネストされたモデルFooModelを削除せずにオプションにする方法はありRequiredAttributeますか?

4

1 に答える 1

1

RequiredAttributeを削除せずに、FooModelのネストされたモデルをオプションにする方法はありますか?

私が知っていることではありません。ビューの要件に適合したビューモデルを使用することをお勧めします(つまり、Bazプロパティをオプションにします)。

public class FooModel 
{
    public BarViewModelModel Bar { get; set; }
}

public class BarViewModelModel 
{
    public string Baz { get; set; }
}

これが、常にビューモデルを使用し、ドメインモデルをビューに渡さない理由の1つです。ご覧のとおり、ドメインモデルはビューの特定の要件に適合していません。特定のビューでは必須のプロパティを、他のビューではオプションのプロパティを設定できます。

于 2012-09-18T15:45:32.047 に答える