0

Type というフィールドが必要なビューモデルがあります。

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

このビューモデルを別のページで使用していますが、タイプが必要ない場合もあります。Type を Required にしないようにページに指示する方法を考えています。

私が試したのは

     @Html.HiddenFor(model => model.Type)

しかし、それはうまくいきませんでした。

4

2 に答える 2

1

あなたはそれを行うことはできませんRequiredAttribute

のように、カスタム条件属性を書き込み/取得しますRequiredIfAttribute(例 はこちら

または、DataAnnotations の代わりに FluentValidation を使用します

または、別の ViewModel を使用します。

于 2012-10-05T21:43:20.340 に答える
1

何らかの理由で同じビュー モデルを使用する場合は、フールプルーフライブラリの使用を検討してください。フールプルーフは、ASP.NET MVC で提供されるデータ注釈の検証を拡張することを目的としています。初期の取り組みは、偶発的な検証を追加することに重点を置いています。

既定の必須属性は次のとおりです。

[RequiredIf]
[RequiredIfNot]
[RequiredIfTrue]
[RequiredIfFalse]
[RequiredIfEmpty]
[RequiredIfNotEmpty]
[RequiredIfRegExMatch]
[RequiredIfNotRegExMatch]

Foolproof の優れた点は、目立たない手法をそのまま使用してクライアント側の検証をサポートすることです。

だからあなたの場合

[RequiredIfTrue("ShouldValidateType"]  
public string Type{ get; set; } 

public bool ShouldValidateType {get; set;}

プロパティ タイプは、ShouldValidateType が true の場合にのみ検証されます。

于 2012-10-05T21:49:48.097 に答える