Customized DisplayAttribute:服务器端验证消息中使用的名称

时间:2018-03-20 11:29:57

标签: c# asp.net-core-mvc

我正在使用IDisplayMetadataProvider以下列方式为表单元素提供翻译:

public class DisplayAttributeMetadataProvider : IDisplayMetadataProvider
{
    public void CreateDisplayMetadata(DisplayMetadataProviderContext context)
    {
        var metadata = context.DisplayMetadata;

        var display = context.Attributes.OfType<DisplayAttribute>().FirstOrDefault();

        /* lines deleted to increase reability */

        metadata.DisplayName = () => new MakeItTranslatable(display.Name);
    }
}

给定模型:

public class Model
{
    [Display(Name = "Account name")]
    [Required]
    public string Login { get; set; }
}

@Html.LabelFor(m => m.Login)给出了正确的结果。短语&#34;帐户名称&#34;已翻译。

但是@Html.ValidationMessageFor(m => m.Login)没有提供正确的验证消息。短语&#34;帐户名称&#34;未在验证消息中翻译。

我正在使用服务器端验证(没有jquery.validate.js),但客户端的属性正确呈现。 (帐户名= Nazwa konta)

different validation

我错过了什么?

0 个答案:

没有答案