配置生效:
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
}
};
}
}
}