【发布时间】:2013-07-21 10:02:10
【问题描述】:
使用 MVC4,我需要从自定义 ValidationAttribute 中检索当前的 ModelMetadata。这样做的原因是验证属性需要知道哪些其他属性附加到正在验证的特定属性。
特别是检查该属性是否附加了UppercaseAttribute;如果是这种情况,那么它将执行不同的逻辑路径。如果可以从ValidationAttribute 中获取ModelMetadata,我将使用以下代码进行检查:
ModelMetadata.ContainerType
.GetProperty(ViewData.ModelMetadata.PropertyName)
.GetCustomAttributes(typeof(UppercaseAttribute), true)
首先,是否可以从自定义ValidationAttribute 中检索ModelMetadata。
其次,上面的代码是检查属性是否附加了特定属性的最佳实践。
【问题讨论】:
-
您是否需要此验证属性仅用于特定模型?如果是这样,您可以发布您的模型吗?
标签: c# .net validation asp.net-mvc-4