Ошибка сервера с пакетом griffin.mvccontrib в asp.net

Чтобы можно было перевести мои аннотации данных в моей модели с помощью файла ресурсов, я увидел, что многие люди рекомендуют решение, предлагаемое jgauffin.

Однако, когда я следую инструкциям по локализации, мой проект не запускается.

Проблемный код это тот, который должен идти в Global.asax.cs файл:

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

Это говорит о том, что LocalizedModelValidatorProvider Конструктор не принимает никаких аргументов, что также показано в других руководствах.

Но когда я меняю строку следующим образом:

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

Я получаю следующую ошибку в браузере:

Попытка получить доступ к элементу как к типу, несовместимому с массивом.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.ArrayTypeMismatchException: попытка получить доступ к элементу как к типу, несовместимому с массивом.

griffin.mvccontrib пакеты были установлены с NuGet под Visual Studio 2012. Есть идеи, что я делаю не так?

1 ответ

Вы можете найти эту ссылку полезной

Вот как я сделал регистрацию по вышеуказанной ссылке:

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;

Также сборка для вашего файла ресурсов.

Другие вопросы по тегам