我正在使用数据注释验证 MVC 3 中的一个字段:
[StringLength(50, MinimumLength=5)]
public string MyText { get; set; }
有没有办法在那里提供动态值?像这样的东西:
[StringLength(50, MinimumLength=GetMinimumLengthValueFromDb())]
public string MyText { get; set; }
我的最后一招是使用远程验证器。如果我找不到方法来使用
StringLength
, 我会用 RemoteValidator
.
最佳答案
不,只能为属性提供编译时值,如常量。此限制适用于所有 C# 属性,并非特定于数据注释属性,而是适用于 StringLengthAttribute
意味着有办法在运行时提供不同的长度。
您需要使用另一种验证方式,或者创建一个继承自 StringLengthAttribute
的自定义属性。接受 Type
以及该类型的方法名称作为长度值的来源。这种方法类似于 CustomValidationAttribute
使用的方法。接受 ValidatorType
和一个 Method
名称作为验证来源。
关于asp.net-mvc - 是否可以在 MVC 3 中为 StringLength 验证器提供运行时值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8256400/