2

リソース ファイルを使用してモデルのデータ アノテーションを変換できるようにするために、多くの人がjgauffinによって提供されるソリューションを推奨していることがわかりました。

ただし、ローカリゼーション チュートリアルに従うと、プロジェクトを起動できません。

問題のあるコードは次のコードです。これは、Global.asax.csファイルに入れることになっています。

ModelValidatorProviders.Providers.Add(
  new LocalizedModelValidatorProvider(stringProvider)
);

LocalizedModelValidatorProviderコンストラクターは引数を取らないと言われていますが、これは他のチュートリアルでも示されています。

しかし、次のように行を変更すると:

ModelValidatorProviders.Providers.Add(
  new LocalizedModelValidatorProvider()
);

ブラウザに次のエラーが表示されます。

配列と互換性のない型として要素にアクセスしようとしました。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.ArrayTypeMismatchException: 配列と互換性のない型として要素にアクセスしようとしました。

パッケージは、griffin.mvccontribVisual Studio 2012 の下で NuGet と共にインストールされました。

4

1 に答える 1

0

このリンクが役立つ場合があります

上記のリンクで登録した方法は次のとおりです。

ResourceStringProvider myResouceFile = new ResourceStringProvider(ModelsResources.ResourceManager);
//ModelsResources is my resource file generated class
GriffinStringsProvider griffinStringsProvider = new GriffinStringsProvider(myResouceFile);
ValidationMessageProviders.Clear();
ValidationMessageProviders.Add(griffinStringsProvider);

ModelMetadataProviders.Current = new LocalizedModelMetadataProvider(myResouceFile);
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new LocalizedModelValidatorProvider());

正しいアセンブリが含まれていることを確認してください

using System.Resources;
using Griffin.MvcContrib.Localization;
using Griffin.MvcContrib.Localization.ValidationMessages;

また、リソース ファイルのアセンブリ。

于 2014-01-15T14:07:09.420 に答える