InvariantCulture (16.4) に 10 進形式の値を投稿しましたが、ドイツのシステムでモデルに到達しなかったことに驚きました。
ドイツ語の形式 (16,4) を使用する必要がありました。パラメーターの解析に使用される言語を構成する方法はありますか?
編集:ソースコードにデバッグした後、ValueProviderDictionary に言語固有の部分が見つかりました
PopulateDictionary。そこにあるドキュメントには次のように書かれています。
- リクエスト フォームの送信 (文化を意識する必要があります)
- RouteData からの値 (入力された URL またはルートのデフォルト値からの値である可能性があります)
- URI クエリ文字列
1.CurrentCulture を取得 2./3. InvariantCultureを取る
これは私にはうまくいきません。値を投稿したり、クエリ文字列に入れたりすると、Culture の使用に関して別の動作は期待できません。ユーザーが解析可能な値を手で入力する場合は必要になるかもしれませんが、リストボックスの値を入力する場合は奇妙です。両方のバージョンを切り替えることができれば、理想的な解決策になると思います。
とにかく、PopulateDictionary が呼び出される前に CultureInfo.CurrentCulture を設定する方法を見つける必要がありました。それが私がやった方法です:
void Application_BeginRequest(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
}