クライアント側で機能するために必要なクライアント検証ルールを含む MinValue 属性を作成する方法を考え出そうとしています - これは私が作成した他の属性に基づいていますが、_minValue をGetClientValidationRules メソッド:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class MinValueAttribute : ValidationAttribute, IClientValidatable
{
private readonly int _minValue;
public MinValueAttribute(int minValue)
{
this._minValue = minValue;
}
public override bool IsValid(object value)
{
return (int)value >= this._minValue;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return new ModelClientValidationRule
{
ErrorMessage = this.ErrorMessage,
ValidationType = "min"
};
}
}
もちろん、上記のコードに似たものを使用してそれを行う方法がまったくない場合を除き、Int32.MaxValue 範囲ルールのハックも探していません。