C# 如何在属性级别(如MVC中的DataAnotation)而不是全局级别上应用区域性

C# 如何在属性级别(如MVC中的DataAnotation)而不是全局级别上应用区域性,c#,asp.net-mvc,data-annotations,culture,C#,Asp.net Mvc,Data Annotations,Culture,我只需要在DataAnotation属性中的单个TextBox控件上应用区域性,而不是整个模型 语言 在MVC中# 例如 但它不起作用。如果您的问题是关于在特定区域性中显示字符串,并且您不想更改所有内容的语言(仅此文本框),您可以创建这样的自定义数据批注 public class LocalizedDisplayNameAttribute : DisplayNameAttribute { public LocalizedDisplayNameAttribute(string displa

我只需要在DataAnotation属性中的单个TextBox控件上应用区域性,而不是整个模型

语言

在MVC中#

例如


但它不起作用。

如果您的问题是关于在特定区域性中显示字符串,并且您不想更改所有内容的语言(仅此文本框),您可以创建这样的自定义数据批注

public class LocalizedDisplayNameAttribute : DisplayNameAttribute
{
    public LocalizedDisplayNameAttribute(string displayNameKey)
        : base(displayNameKey)
    {
    }

    public override string DisplayName
    {
        get
        {
            // Get your string from db 
            // or load it from specific resource file 
            //(as your business) and return string;
        }
    }
}

但是如果您不需要所有这些,您可以使用默认显示并从资源文件加载sting

您的属性是一个
字符串
,对
字符串应用格式是没有意义的!你想干什么?属性值和预期输出是什么?我正在尝试使用乌尔都语输入支持rendar textbox控件这不是
DisplayFormattribute
的用途-它用于以特定格式显示数字和
DateTime
属性-因此可以使用
DateTime
,即今天的日期显示为
11/5/2016
2016年10月5日Sat
ETC您可以重新编译任何其他数据类型
datatype
与语言键入支持无关。
public class LocalizedDisplayNameAttribute : DisplayNameAttribute
{
    public LocalizedDisplayNameAttribute(string displayNameKey)
        : base(displayNameKey)
    {
    }

    public override string DisplayName
    {
        get
        {
            // Get your string from db 
            // or load it from specific resource file 
            //(as your business) and return string;
        }
    }
}