asp.net 中 griffin.mvccontrib 包的服务器错误
Posted
技术标签:
【中文标题】asp.net 中 griffin.mvccontrib 包的服务器错误【英文标题】:Server Error with the griffin.mvccontrib package in asp.net 【发布时间】:2013-02-05 09:25:17 【问题描述】:为了能够用资源文件翻译我模型中的数据注释,看到很多人推荐jgauffin提供的解决方案。
但是,当我关注localization tutorial 时,我的项目无法启动。
有问题的代码是这个,它应该放在Global.asax.cs
文件中:
ModelValidatorProviders.Providers.Add(
new LocalizedModelValidatorProvider(stringProvider)
);
它说LocalizedModelValidatorProvider
构造函数不带任何参数,其他教程也显示了这一点。
但是当我这样改行时:
ModelValidatorProviders.Providers.Add(
new LocalizedModelValidatorProvider()
);
我在浏览器中收到以下错误:
试图以与数组不兼容的类型访问元素。
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArrayTypeMismatchException:试图以与数组不兼容的类型访问元素。
griffin.mvccontrib
软件包是在 Visual Studio 2012 下随 NuGet 一起安装的。知道我做错了什么吗?
【问题讨论】:
【参考方案1】:您可能会发现 this link 很有帮助
这是我在上面链接中的注册方式:
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;
也是资源文件的程序集。
【讨论】:
以上是关于asp.net 中 griffin.mvccontrib 包的服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Asp.net / Asp.net mvc 中进行实时 Web 体验的方法是啥? [关闭]
ASP.NET/HTML:ASP.NET (.cs) 中 HTML 按钮的 onClick 属性