1

作成したビュー モデルの条件付き検証を実行したいと考えています。

public class MyViewModel
{
    public int SelectedItem { get; set; }

    public Item Item1 { get; set; }
    public DetailedItem Item2 { get; set; }

}

public class Item
{
    [Required]
    public int Id { get; set; }

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

public class DetailedItem
{
    [Required]
    public int Id { get; set; }

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

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

クライアント側を介して Item と DetailedItem にバインドされた部分ビューを表示または非表示にする SelectedItem にバインドされたラジオボタンがあります。

フォームの投稿で、選択したモデルを検証したいのですが、どのように. 上記のコードを使用して

ModelState.IsValid

完全に完了した部分ビューの 1 つだけで、他のモーダルに必須フィールドが含まれていないため、IsValid=false が返されます。

選択したモデルのみを検証する方法はありますか?

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

2

はい、ModelState は Dictionary クラスであり、キーを使用して項目を削除できます。

例えば、

ModelState.Remove("Item1");

次に、への呼び出し

ModelState.IsValid

そのエントリの要件を無視します。

これはドキュメントへのリンクであり、これが ViewModels で発生するどうかについての議論もあります。

于 2013-06-27T03:31:58.563 に答える