【问题标题】:Create a DataTypeAttribute that uses an Editor Template and is a ValidationAttribute创建一个使用编辑器模板并且是 ValidationAttribute 的 DataTypeAttribute
【发布时间】:2014-12-16 20:33:38
【问题描述】:

使用 MVC5 和 .NET 4.5

我想制作一个既可以使用编辑器模板又可以用作 ValidationAttribute 的 DataTypeAttribute。

据我了解,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
    }

}

这是我的 ViewModel 中的属性:

    [XXX]

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

我的 XXXAttribute 的 IsValid 方法中的调试器显示它从未在提交时被检查。

谁能指出我做错了什么?谢谢。

【问题讨论】:

    标签: c# asp.net-mvc custom-attributes validationattribute asp.net-mvc-5.2


    【解决方案1】:

    编辑器模板适用于 DataTypes 命名约定。所以你需要一个 string.cshtml(不推荐),或者你可以使用 EditorFor 覆盖,明确告诉它使用什么模板。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      相关资源
      最近更新 更多