23

I want to get error message from resources. When i tried codes below i take that error:"An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type" What can i do ?

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

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

2 Answers 2

53

Try this

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

 [Required(ErrorMessageResourceType = typeof(Resources.Resources),       
            ErrorMessageResourceName = "enterPassword")]
 public String Password { get; set; 
Sign up to request clarification or add additional context in comments.

1 Comment

I had to add ErrorMessage = null to make it work with asp.net mvc 5. Like: [Compare("NewPassword", ErrorMessageResourceType = typeof (Resources.ModelStateErrors.Index), ErrorMessageResourceName = "passworddonotmatch", ErrorMessage = null)] public string ConfirmPassword { get; set; }
3

A similar approach but without the problem related by @Ali Baig about to have to add ErrorMessage = null to make it work.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.