ASP.Net MVC模型ErrorMessage属性中的全局资源

时间:2016-02-17 12:32:18

标签: c# asp.net-mvc asp.net-mvc-5 globalization

我在ASP.Net MVC 5中创建Web应用程序。

我需要添加用户定义的语言。 (因此,它可以用任何语言工作)。

我在资源文件中添加了英文文本/消息。

而对于其他语言,将在App_GlobalResources文件夹中生成资源。

使用这些自定义资源,我可以按照所选语言显示标签(,按钮等)。

但是,我遇到了ErrorMessage的问题,它在模型的属性中作为属性给出。

模型类在类库中,类库项目的引用添加在MVC中。

因此,无法从App_GlobalResources文件夹访问资源。

而且,如果我在Project of Model类下添加资源,我可以使用以下代码给出自定义消息。

    [Required(ErrorMessage = "*")]
    [System.Web.Mvc.Compare("Password", ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "PasswordCompare")]
    public string ConfirmPassword { get; set; }

但是,使用此代码,我无法使用App_GlobalResources。

在这种情况下会有什么解决方案?

1 个答案:

答案 0 :(得分:1)

最后,我得到了解决方案:

创建自定义属性类。

WebElement element = driver.findElement(By.xpath("//div[contains(text(),'Test Profile')]"));
String text = element.getText();

Custom Attribute类继承CompareAttribute类。

    [Required(ErrorMessage = "*")]
    [CompareCustomAttribute("Password", ClassKey = "Resources", ResourceKey = "PasswordCompare")]
    public string ConfirmPassword { get; set; }

在重写的FormatErrorMessage方法中,我已经放置代码以从Global Resources获取自定义的错误消息。