ASP.NET MVC4验证

时间:2013-05-22 10:56:15

标签: asp.net-mvc validation asp.net-mvc-4

我有一个View模型

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-至少应该有一个布尔值,并且需要相关的时间。

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

由于

2 个答案:

答案 0 :(得分:1)

使用远程验证。例如,Here

        [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; }

答案 1 :(得分: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个对象的列表。