复杂模型的自定义数据注释

Custom Data Annotations for Complex Models

提问人:James Smith 提问时间:8/21/2012 最后编辑:Yasser ShaikhJames Smith 更新时间:8/21/2012 访问量:346

问:

我有一个这样的视图模型:

public class Event
{
    public string Name { get; set; }

    [DateRangeValidator]
    public DateTimeSpan DateRange { get; set; }
}

这包含另一个类,如下所示:DateTimeSpan

public class DateTimeSpan
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}

我想在客户端启用jQuery非侵入式验证,所以我编写了一个自定义数据注释验证器(它继承自并实现),但它似乎只有在我将注释应用于类的和属性时才有效,而不是当我将其应用于类的属性时。ValidationAttributeIClientValidatableStartEndDateTimeSpanDateRangeEvent

在我看来:

@Html.LabelFor(x => x.DateRange.Start, "Start Date:") @Html.ValidationMessageFor(x => x.DateRange.Start)
        @Html.TextBoxFor(x => x.DateRange.Start)

@Html.LabelFor(x => x.DateRange.End, "End Date:") @Html.ValidationMessageFor(x => x.DateRange.End)
        @Html.TextBoxFor(x => x.DateRange.End)

ASP.NET MVC 3 只会将不显眼的 JavaScript data-* 属性注入 HTML 中,如果将注释添加到 and 属性中,那么如果将属性应用于属性,有没有办法使其工作?StartEndDateRange

我不希望我的域模型类(即非视图模型类)必须实现 IClientValidatable,因为这样我就必须在域模型项目中引用 System.Web.Mvc。DateRange

编辑:不确定它是否相关,但该属性会进行检查以确保结束日期发生在开始日期之后,等等。DateRangeValidator

asp.net-mvc 不显眼的 javascript

评论


答: 暂无答案