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



我使用全局静态方法进行本地化。这个静态方法接受资源名并为它返回字符串资源值。方法如下

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

我像这样从我的视图访问这个方法

@MyClass.GetResourceValue("ResourceName")

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

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

使用这个链接我找到了解决这个问题的方法

我刚刚创建了一个具有静态属性的新类,像这样

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; }

的问题是,它需要创建额外的类来存储静态属性,从我的本地化全局静态方法返回错误消息。

最新更新