【发布时间】:2009-11-25 14:49:00
【问题描述】:
public class Dinner
{
public string ID { get; set; }
public string Title { get; set; }
public Category Category { get; set; }
public DateTime? DateCreated { get; set; }
}
该类的模型视图(重要部分)是
public class DinnerModelView
{
...
[UIHint("DatePicker")]
[DateTime(ErrorMessage = "Invalida date")]
public DateTime? DateCreated { get; set; }
}
日期时间属性在哪里
public class DateTimeAttribute : ValidationAttribute
{
public DateTimeAttribute () : base (() => "Invalid date") { }
public DateTimeAttribute(string errorMessage) : base(() => errorMessage) { }
public override bool IsValid(object value)
{
if (value == null)
return true;
bool isValid = false;
if (value is DateTime)
isValid = true;
DateTime tmp;
if (value is String)
{
if(String.IsNullOrEmpty((string)value))
isValid = true;
else
isValid = DateTime.TryParse((string)value, out tmp);
}
return isValid;
}
}
但是模型状态错误仍然显示“值 'xxxx' 对于 DateCreated 无效。” 我无法替换此消息。为什么?
【问题讨论】:
-
ValidationAttribute 的类型是什么?您将 lambda 传递给基本 ctor,但 DataAnnotations ValidationAttribute 没有这样的 ctor。
-
我正在使用 mvc 2 附带的数据注释程序集。这里是 ValidationAttribute 的构造函数 protected ValidationAttribute(); protected ValidationAttribute(Func
errorMessageAccessor); protected ValidationAttribute(string errorMessage);
标签: asp.net-mvc validation data-annotations