在MVC中使用带有错误消息的资源

23

我想从资源中获取错误消息。 当我尝试以下代码时,我遇到了这个错误:“属性参数必须是常量表达式、typeof 表达式或属性参数类型的数组创建表达式”。 我该怎么办?

public class UserLoginModel
{
     [Required(ErrorMessage =Resources.PageResources.enterYourEmail)]
     public String Email{ get; set; }

     [Required(ErrorMessage =Resources.PageResources.enterPassword)]
     public String Password { get; set; 
}

2个回答

53

试一试

 [Required(ErrorMessageResourceType = typeof(Resources.Resources),       
            ErrorMessageResourceName = "enterYourEmail")]
 public String Email{ get; set; }

 [Required(ErrorMessageResourceType = typeof(Resources.Resources),       
            ErrorMessageResourceName = "enterPassword")]
 public String Password { get; set; 

我不得不添加ErrorMessage = null,以使其与asp.net mvc 5一起使用。像这样:[Compare("NewPassword", ErrorMessageResourceType = typeof (Resources.ModelStateErrors.Index), ErrorMessageResourceName = "passworddonotmatch", ErrorMessage = null)] public string ConfirmPassword { get; set; } - Ali Baig

3

类似的方法,但不会出现@Ali Baig所提到的必须添加ErrorMessage = null才能使其正常工作的问题。

    [Required(ErrorMessageResourceName = nameof(Resources.Global_Errors.ReqName),
 ErrorMessageResourceType = typeof(Resources.Global_Errors))]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接