如何从返回字符串的静态方法设置数据注释ErrorMessage字符串值

时间:2014-05-27 06:22:59

标签: c# asp.net-mvc-4 data-annotations

我使用全局静态方法进行本地化。此静态方法获取资源名称并为其返回字符串资源值。这个方法就像这样

public static string GetResourceValue(string ResourceName)
{
    return "StringValue";
}

我正在从我的视图中访问此方法

@MyClass.GetResourceValue("ResourceName")

并返回要显示的字符串值。这工作正常,但如何在我的模型中使用相同的方法?有没有办法从这个静态方法设置ErrorMessage值这样的东西

[Required(ErrorMessage=MyClass.GetResourceValue("ResourceName"))]
public string Name { get; set; }

1 个答案:

答案 0 :(得分:3)

我使用此link

解决了这个问题

我刚创建了具有静态属性的新类

public class LocalizedErrorMsg
{
    public static string NameRequiredMsg
    {
        get
        {
            return MyClass.GetResourceValue("NameRequiredMsg");
        }
    }
}

并在数据注释中将ErrorMessageResourceName作为静态属性名称传递,将ErrorMessageResourceType作为类名传递给

[Required(ErrorMessageResourceName = "NameRequiredMsg", ErrorMessageResourceType = typeof(LocalizedErrorMsg))]
public string Name { get; set; }

问题是它需要创建额外的类来存储静态属性,这些属性从我的本地化全局静态方法返回错误消息。我搜索了但除此之外我没有得到解决方案。