2017-04-13 3 views
1

MVCで入力番号を使用しようとしていますが、カンマを正しく受け入れています(カンマを小数点区切りとして使用しています)。MVCはそれを受け入れます私が作ったカスタムバインダーで。値はデータベースに正しく保存され、戻ってきます。HTML 5数値MVCでの入力が十進数で表示されない

問題は、数値コントロールに0.231のように見える10進数値を渡すとき、私はそれが私のカルチャにカンマで書式設定しようとしていると思うので、何も表示されません。

バインダーはサーバーに戻ったときに機能しますが、ページに戻るときにコントロールに戻るために何か別のものが必要ですか?

かみそりビューで私のコントロール:

@Html.EditorFor(model => model.DecimalValueForExample, new { htmlAttributes = new { @class = "form-control", @type = "number", @step = "any", @min = "0.001", autocomplete = "off" } }) 

のviewmodelで私の属性:これは、過去のブラウザのコンプライアンスの問題と支援の水準となっている

 [Display(Name = "DecimalValueForExample", ResourceType = typeof(Properties.Resources))] 
     [DisplayFormat(DataFormatString = "{0:0.###}", ApplyFormatInEditMode = true)] 
     [Range(0.001, double.MaxValue, ErrorMessageResourceName = "RangeErrorMessage", ErrorMessageResourceType = typeof(Properties.Resources))] 
     [Required] 
     public decimal DecimalValueForExample{ get; set; } 
+0

html5のは、小数点以下の数字ではなく整数で最も効果的だと思います。 w3schoolsで試してみてください:https://www.w3schools.com/html/html_form_input_types.asp – mortb

+0

10進数で正常に動作します。ここで例を保存しました:https://www.w3schools.com/code/tryit.asp?ファイル名= FELCCBVINC0P –

+0

ええ、そうです。私はステップ=「すべて」の部分を見逃しました。 – mortb

答えて

1

は、ブラウザ間で変動し、 OS。 私が見つけた最後のチャートは、その時点でWindows上のカンマをサポートしていなかったChromeのバージョンが12バージョン遅れていることです。 HTML5 number inputs – Comma and period as decimal marks

にも聞いて登場してきたいくつかのJSの回避策がありました、 html tag input of type=”number” and culture based decimal separator

+0

私は現在オペラを使用していますが、数字を入力するときはコンマが受け入れられますが、問題を受け入れるときに問題があると戻ってくると思います。 10進数から。 –

+0

これは入力時に機能します:http://i.imgur.com/NPeDEEP.jpg –

+0

ブラウザに役立つように、その入力要素に「lang」属性を追加してみてください。 私は通常、自分のフォーム要素の大部分を手作業で書いて、モデルから値の部分だけを入力するだけでなく、これらのタイプの入力を分割して、すべての組み合わせをステップ実行する必要がないようにします。 –

関連する問題