吐槽:这文本编辑器很奇葩,反人类的使用方式。一点都不好玩,光标乱定位,需要剪切内容放到正确的地方。这和DOC一样操作的光标又是什么鬼,写错了还要移动光标挨个字符操作。
配置生效:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using System.ComponentModel.DataAnnotations; using SDRMS.Filters; namespace XXXXX { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { 。。。 。。。 DataAnnotationsModelValidatorProvider.RegisterAdapterFactory(typeof(RequiredAttribute),(m,c,a) => new MyRequiredAttributeAdapter(m,c,(RequiredAttribute)a)); } } }
具体实现:
重写的第一个方法是针对客户端Jq Validate验证的返回消息。
重写的第二个方法是针对服务器验证返回信息。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.ComponentModel.DataAnnotations; namespace XXXXX.Filters { /// <summary> /// 替换由于服务器验证返回结果是英文我想显示中文的问题 /// </summary> public class MyRequiredAttributeAdapter : RequiredAttributeAdapter { public MyRequiredAttributeAdapter(ModelMetadata metadata, ControllerContext context, RequiredAttribute attribute) : base(metadata, context, attribute) { } public override IEnumerable<ModelClientValidationRule> GetClientValidationRules() { string errorMessage = string.Format("{0}是必须的",Metadata.DisplayName); return new[] { new ModelClientValidationRequiredRule(errorMessage) }; } public override IEnumerable<ModelValidationResult> Validate(object container) { string errorMessage = string.Format("{0}是必须的", Metadata.DisplayName); return new ModelValidationResult[] { new ModelValidationResult() { MemberName=Metadata.PropertyName, Message= errorMessage } }; } } }