最近把项目从mvc3升级到mvc4,部署到服务器上出现了一个小问题,就是在表单里字段验证时,验证显示信息为英文,以下:程序员
The field 平均租金 must be a number服务器
而在本地是好的,能够显示中文信息:mvc
字段 平均租金 必须是一个数字google
说明:咱们在服务器上没有安装mvc组件,只是把须要的DLL引入进来便可。也安装了.net4.0 简体中文语言包。以前MVC3项目也是正常的,升级到MVC4才出现这个问题。spa
百度,google也仅仅几条信息,没有想要的答案。固然解决方法也不是没有,就是在服务器上安装MVC4须要的组件。但服务器上运行了多个项目,若是安装一些程序,须要重启势必会对其余正在处理业务的项目形成影响,全部暂时忽略这个办法。.net
仔细分析了一下这个问题,我是从mvc3升级到mvc4,中间只是替换了一些mvc相关dll引用和配置文件的版本号,那么我新建一个真正的mvc4的项目部署到服务上看会不会出现这个问题。3d
答案是可以正常显示中文验证信息。那么问题出在哪里呢? 咱们都知道一台服务器若是没有安装mvc组件,只须要引用那几个DLL便可。而验证只须要在配置里开启,而后再页面上引用那两个JS便可。因此,问题确定是出在这个几个地方。因而经过比较,发现新建的mvc4项目bin目录里多了一些文件夹,如 zh-hans,zh-hant等,做为程序员对zh-打头的东西老是很眼熟,百度一下,zh-hans表明中文简体,zh-hant表明中文繁体。而后把这个文件夹拷贝到项目里,验证信息立刻正常显示中文了(固然,你也能够把zh-hans里面无关的dll删掉)。blog
至此,问题已解决了,但我又发现了一些让我眼熟的东西。zh-hans文件夹里dll都带有resources。 没错,就是"resources" 让我想起了作过的中英文版本,那不也是添加资源文件吗?资源
因而用ILSpy反编译一下,能够看到,这不就是资源文件么,并且在里面还能看到咱们上面的验证信息。部署
至此,全部谜底已解开。