2017-04-21 21 views
0

サンプルプロジェクトを実行してMVC(バージョン5)を学習しています。それゆえ、私は足場を何も使用せず、最初からすべてをやっています。私はView Modelを持っています。View Modelには、以下のバリデーションを持つPasswordフィールドがあります。MVC 5の範囲属性が正常に動作しない

[Display(Name = "Password")] 
    [DataType(DataType.Password)] 
    [Required(ErrorMessage = "{0} is Required.")] 
    [Range(1, 4, ErrorMessage = "{0} has to be between {1} and {2} characters.")] 
    public string Password { get; set; } 

私の.cshtmlには、@ Html.EditorForを使ってレンダリングされたパスワードのテキストボックスがあります。私は学んでいるので、私は追加されたCSSがありません。 jquery-1.10.2.js、jquery.validate.js、jquery.validate.unobstrusive.jsへの参照をcshtmlファイルに追加しました。上記のパスワードフィールドを除いて、検証は正しく機能しています。私がパスワードのテキストボックスに1文字しか入力しなかった場合、検証は成功しますが、それ以上のものは失敗しますが、これは奇妙です。私はこれを理解することができません。誰もがこれで私を助けてくれる?

+0

を解決します。詳細は答えを参照してください –

+0

すでに述べたように、 'range'は文字列の長さではなく数値です。また、疑問は実際には、非妥当性検証プラグインをASPの一部として適切に使用する方法であり、基礎となるjQuery検証ではありません。編集されたタグ。 – Sparky

+0

ありがとうSparky。あなたのコメントは、より良い質問に答えます。返信としてあなたのコメントを追加してください、私は返信としてマークします。 – Ven

答えて

1

あなたが5を置けばあなたが行っていることの範囲内の値は、フィールドに41を入れたときにその有効指定されている方法

[StringLength(4, MinimumLength = 1, ErrorMessage = "{0} has to be between {1} and {2} characters.")] 

の下に使用してください文字列としてこれを使用しているとは範囲を超えているため無効です。

実際の値ではない長さが必要な場合は、文字列の長さをプロパティに使用する必要があります。あなたはそれが4よりも大きい範囲i.e.12が、何の長さなど、あなたが間ふりを超えた2つの文字を入れたとき

希望これは問題

関連する問題