最近把项目从mvc3升级到mvc4,部署到服务器上出现了一个小问题,就是在表单里字段验证时,验证显示信息为英文,如下:

The field 平均租金 must be a number

而在本地是好的,可以显示中文信息:

字段 平均租金 必须是一个数字

说明:我们在服务器上没有安装mvc组件,只是把需要的DLL引入进来即可。也安装了.net4.0 简体中文语言包。之前MVC3项目也是正常的,升级到MVC4才出现这个问题。

百度,google也仅仅几条信息,没有想要的答案。当然解决方法也不是没有,就是在服务器上安装MVC4需要的组件。但服务器上运行了多个项目,如果安装一些程序,需要重启势必会对其他正在处理业务的项目造成影响,所有暂时忽略这个办法。

仔细分析了一下这个问题,我是从mvc3升级到mvc4,中间只是替换了一些mvc相关dll引用和配置文件的版本号,那么我新建一个真正的mvc4的项目部署到服务上看会不会出现这个问题。

答案是能够正常显示中文验证信息。那么问题出在哪里呢? 我们都知道一台服务器如果没有安装mvc组件,只需要引用那几个DLL即可。而验证只需要在配置里开启,然后再页面上引用那两个JS即可。所以,问题肯定是出在这个几个地方。于是通过比较,发现新建的mvc4项目bin目录里多了一些文件夹,如 zh-hans,zh-hant等,作为程序员对zh-打头的东西总是很眼熟,百度一下,zh-hans代表中文简体,zh-hant代表中文繁体。然后把这个文件夹拷贝到项目里,验证信息马上正常显示中文了(当然,你也可以把zh-hans里面无关的dll删掉)。

至此,问题已解决了,但我又发现了一些让我眼熟的东西。zh-hans文件夹里dll都带有resources。 没错,就是"resources" 让我想起了做过的中英文版本,那不也是添加资源文件吗?

于是用ILSpy反编译一下,可以看到,这不就是资源文件么,而且在里面还能看到我们上面的验证信息。

至此,所有谜底已解开。

MVC3升级到MVC4模型验证信息显示为英文问题及解决方案的更多相关文章

  1. 爱上MVC~MVC4模型验证可以放在前端

    回到目录 MVC4.0推出后,在模型验证上有了一个新的改近,它支持前端验证,即在用户POST之前,如果验证失败,则Action(POST方式的)不会被执行,而直接停留在原视图,这对于用户体验是好的,它 ...

  2. MVC3升级为MVC4

    在程序包管理控制台输入 Install-Package UpgradeMvc3ToMvc4 等待 升级完成

  3. 更改MVC3默认错误提示信息 模型验证 validation

    原文发布时间为:2011-07-20 -- 来源于本人的百度文章 [由搬家工具导入] Model Metadata and Validation Localization using Conventi ...

  4. ASP.NET MVC3升级到ASP.NET MVC4 的方法

    ASP.NET MVC3升级 ASP.NET MVC4 的方法: 1.先去掉引用的System.Web.Mvc.dll(MVC3版本),重新引入System.Web.Mvc.dll(MVC4版本) 2 ...

  5. 记录一次MVC3升级MVC4遇到的问题

    前些天,项目组将项目从mvc3升级至mvc4,完了之后,发现突然涌现出一大堆问题.主要是在前端,Razor引擎升级导致的. Razor是从mvc3开始引入的,用过mvc2的就会知道,Razor用起来确 ...

  6. ASP.NET MVC - 模型验证

    ASP.NET MVC - 模型验证(Model verification) 模型验证原理浅析 模型验证用到了模型绑定器.模型验证器(System.Web.Mvc.DataAnnotationsMod ...

  7. 模型验证组件 FluentValidation

    FluentValidation 是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开.正如 Flu ...

  8. mvc 模型验证及正则表达式

    ASP.NET MVC3中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的. 我们要做的只是给Model类的各属性加 ...

  9. FluentValidation 模型验证

    FluentValidation 是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开.正如 Flu ...

随机推荐

  1. 汽车之家购买价格PC真正的原因阿拉丁

        网行业风起云涌,先是6月3号汽车之家天价竞购百度PC阿拉丁.接着今天又有消息说易车拿下百度移动阿拉丁.易车拿下百度移动阿拉丁能够想象.但PC阿拉丁被向来不屑流量购买,以自主流量自居的汽车之家拿 ...

  2. 枚举 UIButton补充

    一.URL 1.什么是URL? URL是某个资源的唯一路径,通过这个路径就能访问对应的资源 2.URL的组成 协议头://全路径 * 协议头就代表资源的类型,比如http代表网络服务器资源,ftp代表 ...

  3. C语言双向链表

    原文:C语言双向链表 今天写了点双向链表的各种操作,写插入的时候费了点时间,不过,现在看来还是值得耗费那点时间去写的,这种小东西应该能信手拈来才行啊. /*双向链表*/ #include <st ...

  4. RegularExpressionValidator控件

    原文:RegularExpressionValidator控件 ★搜Asp.net★(www.soAsp.net),为专业技术文档网站.包括Asp.net开发技术文档·C#开发技术文档·Access/ ...

  5. 全球最快的JS模板引擎:tppl

    废话不多说,先上测试: 亲测请访问:[在线测试地址]单次结果不一定准确,请多测几次. tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发的 tmpl 的 43 倍!与第二 ...

  6. WebApi 插件式构建方案

    WebApi 插件式构建方案 WebApi 插件式构建方案 公司要推行服务化,不可能都整合在一个解决方案内,因而想到了插件式的构建方案.最终定型选择基于 WebApi 构建服务化,之所以不使用 WCF ...

  7. datagridcolumn单元格怎么显示查询到的某个表的字段值(字段值可能为多个)

    例如,在之前做的项目中,查询mhz_xckcr表,select出某个业务的现场勘察人信息,select出的现场勘察人姓名(可能有多个)要在前台datagrid的一个datagridcolmn单元格显示 ...

  8. [译]Java 设计模式 之模板方法

    (文章翻译自Java Design Pattern: Template Method) 模板方法设计模式定义了归档特定操作的工作流.它允许子类去修改特定的步奏而不用改变工作流的结构. 下面的例子表示模 ...

  9. 证明中序遍历O(n)

    算法导论12.1 什么是二叉搜索树 二叉搜索树应满足的性质: 设x是二叉搜索树中的一个结点.如果y是x左子树中的一个结点,那么y.key <= x.key.如果y是右子树中的一个结点,那么y.k ...

  10. hexo github

    win 安装nodejs,用nodejs cmd执行 npm install -g hexo hexo init blog cd blog npm install 或者新建文件夹,进去init再npm ...