DataTypeAttribute显示错误的消息

时间:2012-04-05 12:13:36

标签: c# asp.net-mvc asp.net-mvc-3 data-annotations

我创建了以下属性:

public class SpecificDataTypeAttribute : DataTypeAttribute
{
    public SpecificDataType(DataType dataType, string field)
        : base(dataType)
    {
        this.ErrorMessage = string.Format("{0} {1}", field, Messages.SpecificDataTypeAttribute);
    }
}

并使用如下:

[SpecificDataType(DataType.DateTime, "Initial date")]
public DateTime? InitialDate { get; set; }

因此,Messages.SpecificDataTypeAttribute中的消息为"is in a incorrect format."。当我在InitialDate中输入错误的日期时,我得到了默认错误:"The value '12' is not valid for InitialDate."。为什么?我把断点和代码调用了SpecificDataType ctor。

2 个答案:

答案 0 :(得分:1)

你的方向错误 - 在asp.net mvc中,DataTypeAttribute没有定义验证规则。它或多或少像UIHintAttribute - 有助于指定在编辑或显示模式下呈现属性时使用的模板。

查看this answer以了解自定义系统类型的验证消息

PropertyValueInvalid的值已格式化,{0}替换为无效值,{1}具有属性名称。所以你可以把它定义为

  

{1}格式无效

答案 1 :(得分:0)