我正在尝试将两个密码字段与Compare属性进行比较,并且在我的项目中,我使用html帮助程序根据语言ID获取不同语言的消息,并且我无法在错误消息中使用我的方法
[LocalizedRequired("PasswordRequired")]
public string Password { get; set; }
[LocalizedRequired("PasswordDoesntMatch")]
[System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessage = "Password doesn't match.")]
public string ConfirmPassowrd { get; set; }
这是没有帮助程序的模型,它工作正常,问题是如果我使用任何返回字符串错误消息的方法根本不起作用。
[LocalizedRequired("PasswordRequired")]
public string Password { get; set; }
[LocalizedRequired("PasswordDoesntMatch")]
[System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessage = Kuvendi.Infrastructure.MVC.HtmlHelperExtensions.DrawLabel("Password doesn't match")))]
public string ConfirmPassowrd { get; set; }
draw label是一个html帮助器方法,它返回特定语言id的字符串,helper成功返回字符串并进行测试。
感谢您的时间。
答案 0 :(得分:0)
传递给属性的参数必须是编译时常量,因此不能调用任何辅助方法来生成它们。
但是,您可以提供字符串资源的名称和资源文件。
将选择MVC的语言will be resolved和正确的资源文件的翻译[LocalizedRequired("PasswordDoesntMatch")]
[System.ComponentModel.DataAnnotations.CompareAttribute("Password", ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "PasswordDoesntMatch")]
public string ConfirmPassowrd { get; set; }