2

控えめな検証では、データ型を区別しません。 MVCがすべての数値フィールドに追加する「数値」検証のみです。MVC3とjQueryによる整数の妥協のない検証

これは、1.2345が有効な整数であるという望ましくない影響を与えます。提出すると、MVCバインダーは値を解析できません。したがって、クライアントサイドのエラーを取得する代わりに、サーバーから取得します。

これを解決する最善の方法は何ですか?既存のソリューションはありますか?

答えて

5

これは私がやったことです。

は(閲覧/共有/ EditorTemplates/Int32.cshtml)のInt32のために私自身のEditorTemplateを書いた:

@model int?   
@Html.TextBox("", Model.HasValue ? Model.Value.ToString() : "", new { data_val_integer = "Field must be an integer" }) 

は.ready $(文書)でこれを実行します(検証アダプタを追加しました:)

jQuery.validator.addMethod('integer', 
    function (value, element, params) { 
     return String.IsNullOrEmpty(value) || isInteger(value); 
    }); 

jQuery.validator.unobtrusive.adapters.add("integer", [], 
    function (options) { 
     options.rules['integer'] = {}; 
     options.messages['integer'] = options.message; 
    }); 

この

function isInteger(value) { 
    return parseInt(value, 10) == value; 
} 

今整数フィールドグラムのように見えるのJavascript機能isIntegerを書きました素敵なメッセージ "フィールドは整数でなければならない"何かに小数点を入れて何かを入力する。

もっと良い方法を聞いてうれしいです。

関連する問題