1

我创建以下属性:

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。

4

2 回答 2

1

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

查看此答案以了解有关为系统类型自定义验证消息的信息

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

{1} 格式无效

于 2012-04-05T13:38:49.047 回答
0

在 MVC 4 中可以本地化默认错误消息。http://weblogs.asp.net/imranbaloch/archive/2013/03/31/localizing-default-error-messages-in-asp-net-mvc-and-web-form.aspx

于 2014-02-28T14:29:25.113 回答