我创建了以下属性:
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。
答案 0 :(得分:1)
你的方向错误 - 在asp.net mvc中,DataTypeAttribute
没有定义验证规则。它或多或少像UIHintAttribute - 有助于指定在编辑或显示模式下呈现属性时使用的模板。
查看this answer以了解自定义系统类型的验证消息
PropertyValueInvalid
的值已格式化,{0}替换为无效值,{1}具有属性名称。所以你可以把它定义为
{1}格式无效
答案 1 :(得分:0)