1

我有一个视图模型

public class TrainingProgramScheduledDateVM
  {

public bool IsTuesday { get; set; }

    [DataType(DataType.Time)]
    public string TueStartTime { get; set; }
    [DataType(DataType.Time)]
    public string TueEndTime { get; set; }

    public bool IsWednesday { get; set; }

    [DataType(DataType.Time)]
    public string WedStartTime { get; set; }
    [DataType(DataType.Time)]
    public string WedEndTime { get; set; }

    public bool IsThursday { get; set; }

    [DataType(DataType.Time)]
    public string ThuStartTime { get; set; }
    [DataType(DataType.Time)]
    public string ThuEndTime { get; set; }

  }

我想以这种方式进行验证。1- 如果 IsTuesday = true 那么 TueStartTime 和 TueEndTime 应该需要。等等其他的

2- 至少一个布尔值应该为真并且需要相关时间。

请建议我任何简单的方法。

谢谢

4

2 回答 2

1

使用远程验证。例如,这里

        [Remote(
        "doesProductNameExistUnderCategory", 
        "Northwind", 
        AdditionalFields = "Category_ID",
        ErrorMessage = "Product name already exists under the chosen category. Please enter a different product name.",
        HttpMethod = "POST"
    )]
    [Required]
    public string Product_Name { get; set; }
于 2013-05-22T11:02:19.860 回答
0

我看到重复。这个块:

public bool IsTuesday { get; set; }

[DataType(DataType.Time)]
public string TueStartTime { get; set; }
[DataType(DataType.Time)]
public string TueEndTime { get; set; }

可以更好地抽象成自己的类型,比如:

public class ScheduleDate
{
    public DayOfWeek DayOfWeek { get; set; }

    public bool IsSelected { get; set; }

    [DataType(DataType.Time)]
    [RequiredIf(IsSelected)]
    public string StartTime { get; set; }

    [DataType(DataType.Time)]
    [RequiredIf(IsSelected)]
    public string EndTime { get; set; }
}

然后你TrainingProgramScheduledDateVM可以包含一个ScheduleDate对象列表。

于 2013-05-22T10:59:31.280 回答