我正在开发ASP.NET MVC应用程序。我发现Fluent Validation是一个很好的验证工具,它可以工作,但是对于我目前的体系结构来说,它有一个缺点。验证器不关心元数据。为了清楚起见,我在单独的类上使用元数据。
型号
[MetadataType(typeof(DocumentEditMetadata))]
[Validator(typeof(DocumentValidator))]
public class DocumentEditModel
{
public string DocumentNumber { get; set; }
(etc...)
}
元数据模型
public class DocumentEditMetadata
{
[Required]
[StringLength(50)]
[Display(ResourceType = typeof(Label), Name = "DocumentNumber")]
public string DocumentNumber { get; set; }
(etc...)
}
有人能指出一个解决方案吗?我需要标签本地化的数据注解(因此需要DisplayAttribute)。
2条答案
按热度按时间bis0qfac1#
您认为需要编写自己的显示名称解析器来进行流畅的验证(我猜应该放在global.asax中)。
注意事项
不应再使用其他“验证”属性(
Required
、StringLength
),因为您将使用FluentValidation管理这些属性。个人观点
顺便说一下,如果您只是为了 * 清晰 * 而使用元数据类,请不要使用它们!如果您没有选择(当实体类是从edmx生成的,并且您确实希望以这种方式管理显示名称时),这可能是一种解决方案,但如果没有必要,我确实会避免使用它们。
rhfm7lfc2#