2

ページとASP.NET MVC 2 BetaMicrosoftMvcJQueryValidation.jsのオブジェクトの間のレイヤーであるファイルを見てきました。jquery.validate

jquery.validateでサポートされている任意のタイプの検証ルールを許可し、正規表現、文字列、範囲、および必須フィールドに対する特別な処理を追加しました。汎用/不明なルール タイプの場合は、次のようにパラメーターを通過するだけです。

  default:
     __MVC_ApplyValidator_Unknown(rulesObj,
         thisRule.ValidationType, thisRule.ValidationParameters);
    break; 

ただし、「メール」など、フレームワークによって生成される JSON に追加のルールを挿入する方法がわかりません。通常、ルールは などの属性から取得され[Required]ます。

検証メタデータ プロバイダー全体を置き換える拡張ポイントがたくさんあることは知っていますが、簡単な方法を探しています。

たとえば、「メール」または「クレジットカード」バリデーターを次のような単純なモデルと組み合わせて使用​​するにはどうすればよいですか。

public class LoginDetails { public bool Editable { get; 設定; }

    [Required(ErrorMessage="Please enter your email")]
    public string Username { get; set; }

    [Required(ErrorMessage="Please enter your password")]
    public string Password { get; set; }
}
4

2 に答える 2

2

DataAnnotationsModelValidatorを使用する

このように。

これらを使用してください

/Scripts/jquery-1.3.2.js

/Scripts/jquery.validate.js

/Scripts/MicrosoftMvcJQueryValidation.js

検証機能を使用する

    <script type="text/javascript">
    $.validator.addMethod("price", function(value, element, paras) {
        if (value.length == 0) {
            return true;
        }
        if (value > paras.minValue) {
            var cents = value - Math.floor(value);
            if (cents >= 0.99 && cents < 0.995) {
                return true;
            }
        }
        return false;
    });
</script>
于 2010-01-06T13:18:07.663 に答える
2

さまざまなタイプのデータについて、必須メッセージを保持できますが、その下にさまざまな属性を追加することもできます。電子メールとクレジット カードの場合、このような正規表現がおそらく最適です。

[Required(ErrorMessage="Please enter your email")]
[RegularExpression(@"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b", 
  ErrorMessage="Please enter a valid email address.")]
public string Email { get; set; }

[Required(ErrorMessage="Please enter your password")]
[RegularExpression(@"^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$.", 
  ErrorMessage="Please enter a valid Credit Card.")]
public string CreditCard { get; set; }

詳細については、これこれ、およびこのリンクを参照してください。

于 2009-12-08T04:37:13.650 に答える