这是我的Model类
public class Model
{
[DataType(DataType.DateTime, ErrorMessage = "My error message")]
public DateTime Day { get; set; }
}
当我尝试输入错误的值例如“notdate”时,我收到了错误 “价值'notdate'对Day来说无效。”而不是我指定的ErrorMessage“我的错误消息”。
我使用ASP.NET MVC 3.0 beta。这是一个错误?
答案 0 :(得分:1)
您要描述的行为有几点需要注意。
首先,您收到此错误,因为在尝试将字符串值'notdate'分配给DateTime字段时会抛出异常。发生这种情况时,任何与该字段关联的验证消息都将被通用消息覆盖:值“{0}”对{1}无效。
其次,基础DataTypeAttribute实际上不对该字段执行任何验证。使用Reflector,您将看到DataTypeAttribute.IsValid()方法声明如下:
public override bool IsValid(object value)
{
return true;
}
希望这有帮助。
答案 1 :(得分:0)
不,这是现有模型装订器的默认功能。
DataType与基本模型绑定无关,不会覆盖基本的模型绑定错误。