First, I want to clarify that I'm currently using the ASP.NET MVC's Model
entities as ViewModel
because my project is based on MVCVM, so I'm not simply confusing the two.
Anyway MVC automatically creates me a few attributes for ViewModel entities like the following (from the wizard, localized in Italian)
public class LoginModel
{
[Required]
[Display(Name = "Nome utente")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Memorizza account")]
public bool RememberMe { get; set; }
}
Replacing the Display
attribute with [Display(Name = LoginViewModelResources.lblUsername)]
causes compilation error: "Argument must be a constant expression, typeof expression or matrix creation expression". In a few words, a property reference is a no-no.
The Razor view uses tags such as the following for generating HTML
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
How can I localize the ViewModel in order to display the correct messages at front-end?