ASP.NET MVC 5 を使用してアプリケーションを開発しています。テキストのローカリゼーションには、リソース ファイルの代わりにデータベースを使用しています。
Required
さまざまな検証属性 ( 、など)の適切に翻訳されたエラー メッセージを取得するために、ここで説明されているようにRange
、 のカスタム メタデータ プロバイダー デリバラーを使用しています。これまでのところ、すべてが期待どおりに機能しています。DataAnnotationsModelMetadataProvider
問題は、「フィールド X は数値でなければなりません」などのデフォルトのエラー メッセージを翻訳したいときに発生します。ASP.NET MVC エンジンは属性を介してこれらのエラーを処理していないように見えるため、この場合、cursom メタデータ プロバイダーは役に立ちません。
このページでは、リソース ファイルを使用してこれらのメッセージを翻訳する方法について説明しています。基本的には、次のApplication_Start
メソッドでこれらの行を追加しGlobal.asax
ます。
ClientDataTypeModelValidatorProvider.ResourceClassKey = "MyResources";
DefaultModelBinder.ResourceClassKey = "MyResources";
...しかし、テキストにデータベースを使用する場合、これをどのように適用できるか想像できません。
私の質問は次のとおりです。テキストが標準リソース ファイルにない場合に、ASP.NET MVC のデフォルト (非検証属性ベース) のエラー メッセージをどのように変換するのですか?