最近把项目从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. Oracle OS认证和口令文件认证方法

    OS认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN文件夹中)文件里,使用vi编辑,凝视掉#SQLNET.AUTHENTICATION_SERVICES = ...

  2. PHP-微信公众平台开发-接收用户输入消息类型并响应

    原文:PHP-微信公众平台开发-接收用户输入消息类型并响应 <?php // 该代码块用于接收用户消息,根据用户输入的消息类型进行判断,文本,图片,视频,位置,链接,语音等,并取得值,处理后给予 ...

  3. 安卓MonkeyRunner源码分析之工作原理架构图及系列集合

    花了点时间整理了下MonkeyRunner的工作原理图,请配合本人博客里面MonkeyRunner其他源码分析文章进行阅读.下面整理成相应系列列表方便大家阅读: MonkeyRunner源码分析之-谁 ...

  4. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

    原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...

  5. MvcPager分页控件以适用Bootstrap

    随笔- 9  文章- 0  评论- 33  修改MvcPager分页控件以适用Bootstrap 效果(含英文版,可下载)   软件开发分页效果必不可少,对于Asp.Net MVC 而言,MvcPag ...

  6. 让你的ubuntu串口程序可以直接读写串口

    默认的情况下,如果我们使用一般用户去打开串口的话会出现 open failed 的错误 这个时候你可以在执行打开串口时加一个sudo,但每次这么需要这么干实在是太麻烦了. 这有一个方法可以跳过以超级用 ...

  7. 如何使用AdvancedInstaller在安装包中运行一个.bat文件

    原文:如何使用AdvancedInstaller在安装包中运行一个.bat文件 1,  首先要保证你的Files and Folders模块下的Application Folder文件夹下包含你要运行 ...

  8. WinXP 无线技巧“区域没有通过无线网络中的发现”一个可能的原因!

    貌似WinXP经典或无限.我一直沿用至今,我不知道这一天会放弃. 遇到的问题,也许有XP爱好者都遇到过还得看,写下一点文字注释.----------------------- 切割线 -------- ...

  9. 九度OJ 1035:找出直系亲属(二叉树)

    题目1035:找出直系亲属 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1309 解决:521 题目描述: 如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如 ...

  10. 将Model实体类对象作为WebService接口参数(转)

    转自:http://www.cnblogs.com/fengyishou/archive/2009/02/27/1399281.html 关于web服务的有关基础知识,看了基本书,但是不敢在这里乱说, ...