英国とドイツで使用される ASP.Net MVC3 アプリがあります。
一部の編集画面には、浮動小数点値の編集が含まれます。これらは、
@Html.EditorFor(m => m.Multiplier, new { size = 5, id = "multiplier" })
...また
@Html.TextBoxFor(m => m.Multiplier, new { size = 5, id = "multiplier" })
私たちの基本的な問題は、DE-de (小数点に , を使用) のカルチャで実行すると、検証の概要に次のようなメッセージが表示されることです。
•乗数の値「4,3」は無効です。
少し調べたところ、MVC 3 ではクライアント側の検証の国際化サポートがそれほど優れていないことがわかりました。最近の Javascript グローバリゼーションの取り組みを追加することで、解決策の可能性があることは理解しています。しかし、影響を最小限に抑えるために、クライアント側の検証を無効にし、この検証をサーバー側で行う必要があることを受け入れます。
だから...私はいくつかの方法でクライアント側の検証を無効にしようとしました:
a) 編集画面のコード:
@using Foo.Models.Analyses
@model Foo.Models.Analyses.Bar
@{
Html.EnableClientValidation(false);
Html.EnableUnobtrusiveJavaScript(false);
using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Post, new { autocomplete = "off" }))
{
b) 上記と同様ですが、構文 HtmlHelper.ClientValidationEnabled = false; を使用します。HtmlHelper.UnobtrusiveJavaScriptEnabled = false
c) a) および b) と同様ですが、web.config を使用します。
これらのどれもメッセージを抑制していないようです。だから私の質問は:
1) フレームワークのどの部分がまだこの検証を実行しているか。(サーバー側の Validate オーバーライドでは発生していません。)
2)これを抑制するにはどうすればよいですか。