我有一个包含所有硬编码代码的(设置)类。对于某些字段(例如 maxCharactersFields 和错误消息)非常方便,这样我可以将相同的字段用于映射、模型和视图模型。因此,如果要在未来改变它,一切都会以同样的方式改变。但是,我似乎无法在视图模型中使用它。更具体地说,在 System.ComponentModel.DataAnnotations 的 StringLength 中。
它给出的错误是“属性参数必须是属性参数类型的常量表达式、类型表达式或数组创建表达式。”
我已经尝试过的某些事情是用我正在工作的 ViewModel 中的一个字段替换它,但它给出了同样的错误。我在 StackOverflow 上进行了谷歌搜索和搜索,但似乎找不到任何试图做这样的事情并遇到同样问题的人。
到目前为止,我学到的是我不能使用我的 Settings 类,因为它不是基本类型,但有办法解决它吗?
错误发生在 StringLength 的行中。
[Display (Name = "E-mail van de gebruiker", Prompt = "John.Doe@gmail.com")]
[DataType (DataType.EmailAddress)]
[Required]
[StringLength(Settings.maxCharactersEmail)]
public string Email { get; set; }
public static class Settings
{
....
public static readonly int maxCharactersEmail= 320; //Googled it
....
}