Asp.net mvc 验证错误消息不';文化变迁之后,我们不会改变
我目前正在开发一个需要支持两种语言的MVC4应用程序。 我正在使用数据注释和以下形式的资源:Asp.net mvc 验证错误消息不';文化变迁之后,我们不会改变,asp.net-mvc,c#-4.0,localization,asp.net-mvc-4,currentuiculture,Asp.net Mvc,C# 4.0,Localization,Asp.net Mvc 4,Currentuiculture,我目前正在开发一个需要支持两种语言的MVC4应用程序。 我正在使用数据注释和以下形式的资源: public class SignupModel { [Required(ErrorMessageResourceName = "Registration_ValidEmailRequired", ErrorMessageResourceType = typeof(Validation))] [Email(ErrorMessageResourceName = "Registration_
public class SignupModel
{
[Required(ErrorMessageResourceName = "Registration_ValidEmailRequired", ErrorMessageResourceType = typeof(Validation))]
[Email(ErrorMessageResourceName = "Registration_ValidEmailRequired", ErrorMessageResourceType = typeof(Validation))]
public string Email { get; set; }
[Required(ErrorMessageResourceName = "Registration_PasswordRequired", ErrorMessageResourceType = typeof(Validation))]
[StringLength(100, MinimumLength = 8, ErrorMessageResourceName = "Registration_PasswordInvalidLength", ErrorMessageResourceType = typeof(Validation))]
[DataType(DataType.Password)]
public string Password { get; set; }
}
我创建了一个全局操作过滤器,如果存在,它将读取语言cookie,并相应地设置当前的区域性和uiculture。如果cookie不存在,它将使用当前区域性创建cookie。这就是过滤器中执行的操作的样子:
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var langCookie = GetOrSetLanguageCookie(filterContext.HttpContext);
var culture = new CultureInfo(langCookie.Value);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
除发生以下情况外,一切正常: