0

私は現在、その検証に誰にでもできることを使用しています。

[RequiredIfNot("type", 3, ErrorMessage = "Please enter at least one value")]
public int[] audites { get; set; }

しかし、顧客はそのように検証を追加したいと考えています:

[RequiredIfNot("type", 3, ErrorMessage = "Please enter at least one value")]
[RequiredIfNot("nature", 1, ErrorMessage = "Please enter at least one value")]
[RequiredIfNot("nature", 3, ErrorMessage = "Please enter at least one value")]
public int[] audites { get; set; }

しかし、コンパイラはそれに同意しないので、どうすれば両方を組み合わせることができますか?

前もって感謝します!

4

1 に答える 1

2

Foolproof.RequiredIfNotAttributeから派生しますFoolproof.ModelAwareValidationAttribute(これは から派生します) System.ComponentModel.DataAnnotation.ValidationAttributeModelAwareValidationAttributeでマークされてい[AttributeUsage(AttributeTargets.Property)]ます。ソースコードを参照してください。デフォルトでは、AllowMultipleパラメータはAttributeUsageis ですfalse。これは、属性をプロパティに一度だけ適用できることを意味します。3回適用しようとしたため、エラーが発生しました。

それを持っていtrueて、それを複数回適用できるようにすると、目立たない検証で使用される$.validator.methodsおよび関数の設定で問題が発生する可能性があります。$.validator.unobtrusive.adapters

ValidationAtribute他の検証属性を使用するか、実装する独自の属性を作成するかIClientValidatable、サーバー側の検証に依存する必要があります。

于 2015-02-14T04:07:17.037 に答える