Ошибка сервера с пакетом 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;
Также сборка для вашего файла ресурсов.