C# 如何修复MVC中的错误消息资源类型?

C# 如何修复MVC中的错误消息资源类型?,c#,asp.net-mvc,cultureinfo,resx,uiculture,C#,Asp.net Mvc,Cultureinfo,Resx,Uiculture,有多种语言的应用,因为我们面临错误消息资源类型的问题 错误消息数据批注未按照当前区域性工作 我们有英语和西班牙语的文化档案 型号: public class MyModel { [DataType(DataType.EmailAddress)] [Required(ErrorMessageResourceType = typeof(MyLang.Resource), ErrorMessageResourceName = "emailrequired")] [Di

有多种语言的应用,因为我们面临错误消息资源类型的问题

错误消息数据批注未按照当前区域性工作

我们有英语和西班牙语的文化档案

型号:

public class MyModel
{
 [DataType(DataType.EmailAddress)]
        [Required(ErrorMessageResourceType = typeof(MyLang.Resource), ErrorMessageResourceName = "emailrequired")]
        [Display(Name = "Email", ResourceType = typeof(MyLang.Resource))]
        public string Email { get; set; }

}
string cultureName="en"; // or es
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

当我使用代码级别更改区域性时,所有标题都正确更改,但错误消息未转换为正确的语言

代码:

public class MyModel
{
 [DataType(DataType.EmailAddress)]
        [Required(ErrorMessageResourceType = typeof(MyLang.Resource), ErrorMessageResourceName = "emailrequired")]
        [Display(Name = "Email", ResourceType = typeof(MyLang.Resource))]
        public string Email { get; set; }

}
string cultureName="en"; // or es
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

查看

<div class="form-group row">
<div class="col-md-2">
    @Html.LabelFor(x => x.Email, new { @class = "form-control-label" })                                        
</div>
<div class="col-md-4">
    @Html.TextBoxFor(model => model.Email, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Email)
</div>
</div>

@LabelFor(x=>x.Email,新的{@class=“formcontrollabel”})
@Html.TextBoxFor(model=>model.Email,新的{@class=“form control”})
@Html.ValidationMessageFor(model=>model.Email)

尝试在视图中包含jquery验证脚本

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

尝试在视图中包含jquery验证脚本

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

您能添加视图代码吗?@gobes添加了视图代码。使用标签和文本似乎英语消息是默认消息-就好像您没有定义其他消息一样。我不记得框架在找不到资源时是如何运行的;这些资源在你期望的地方吗?顺便说一句,您的模型字段是
电子邮件
,但您的错误消息要求输入公司名称。这里我已经给出了字段,并使用相同的文本框用于和ValidateMessageFor。例如电子邮件。公司名称相同。。验证消息即将发布。想法呢?你能添加你的视图代码吗?@gobes添加了视图代码。使用标签和文本似乎英语消息是默认消息-就好像您没有定义其他消息一样。我不记得框架在找不到资源时是如何运行的;这些资源在你期望的地方吗?顺便说一句,您的模型字段是
电子邮件
,但您的错误消息要求输入公司名称。这里我已经给出了字段,并使用相同的文本框用于和ValidateMessageFor。例如电子邮件。公司名称相同。。验证消息即将发布。你有什么想法?