最近把项目从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. centos7的安装

    初装centos7还是在九月份,那时候关于win7 下centos7硬盘安装的资料很少,现在就好多, 在这里备份下东西吧 首先是安装的时候,关于找从那个地方找image的问题. hda ,sda分别表 ...

  2. RethinkDB创始人教你如何打造一个伟大的互联网产品

    关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...

  3. 快速构建Windows 8风格应用23-App Bar概述及使用规范

    原文:快速构建Windows 8风格应用23-App Bar概述及使用规范 本篇博文主要介绍App Bar概述.App Bar命令组织步骤.App Bar最佳实践.   App Bar概述 Windo ...

  4. 设计模式之职责链模式(Chain of Responsibility)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  5. Redis打造URL缩短服务

    用Redis打造URL缩短服务   此文章的英文版本已首发于 CodeProject : Building a simple URL shorten service with Redis 阅读文章之前 ...

  6. Newtonsoft.Json 将C#对象转化为json格式

    object To json public static string ObjectToJson(object obj) { JsonSerializerSettings jss = new Json ...

  7. Android项目---LayoutParams

    LinearLayout.LayoutParams extends ViewGroup.MarginLayoutParams java.lang.Object    ↳ android.view.Vi ...

  8. 控制台命令行API

    js调试系列: 控制台命令行API   上次初步介绍了什么是控制台<js调试系列: 初识控制台>,以及简单的 console.log 输出信息.最后还有两个小问题,我们就当回顾,来看下怎么 ...

  9. WCF的简单

    WCF的简单 WCF的学习之旅 一.WCF的简单介绍  Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows ...

  10. Using Ninject in a Web Application

    http://aidenweb.co.uk/?p=15 Using Ninject in a Web Application I have been meaning to look at Ninjec ...