创建一个使用编辑器模板的数据类型属性,并且是一个验证属性

本文关键字:属性 一个 数据类型 验证 编辑器 创建 | 更新日期: 2023-09-27 18:34:21

Using MVC5 and .NET 4.5

我想制作一个既使用编辑器模板又用作验证属性的数据类型属性。

据我了解,DataTypeAttribute 继承自 ValidationAttribute,所以我认为这并不困难。

但是,我无法对其进行验证。

这是我的属性:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class XXXAttribute : DataTypeAttribute
{
    public XXXAttribute() : base("XXX") { }
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        // validation code
    }
}

这是我的视图模型中的属性:

    [XXX]
    [Display(Name = "XXX")]
    public string XXX { get; set; }

我的 XXXAttribute 的 IsValid 方法中的调试器显示,提交时从未对其进行检查。

有人可以向我指出我做错了什么吗?谢谢。

创建一个使用编辑器模板的数据类型属性,并且是一个验证属性

编辑器模板采用数据类型命名约定。因此,您将需要一个 string.cshtml(不推荐(,或者您可以使用 EditorFor 覆盖,明确告诉它要使用什么模板。

@Html.EditorFor(model => model.XXX, "XXX")

请参阅文档 http://msdn.microsoft.com/en-us/library/ee407414(v=vs.118(.aspx