Asp.net mvc ASP.NET MVC4验证

Asp.net mvc ASP.NET MVC4验证,asp.net-mvc,validation,asp.net-mvc-4,Asp.net Mvc,Validation,Asp.net Mvc 4,我有一个视图模型 public class TrainingProgramScheduledDateVM { public bool IsTuesday { get; set; } [DataType(DataType.Time)] public string TueStartTime { get; set; } [DataType(DataType.Time)] public string TueEndTime { get; set; } pu

我有一个视图模型

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

请给我推荐任何简单的方法


谢谢

我看到重复了。该区块:

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
对象的列表。

我看到了重复。该区块:

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
对象的列表。

使用远程验证。比如说,


使用远程验证。比如说,


这对发布和验证新模型有何帮助?请发送适当的示例。此处完整示例:@CodeCaster:remote validation可以帮助您实现非常复杂的验证:通过两个或三个字段。它还允许通过数据库中的附加数据来验证数据。这不是唯一的方法,但我喜欢这种方法。听起来不错。但不适合我的情况,我不想被发回只是为了验证。这对发布和验证新模型有什么帮助?请发送适当的示例。完整示例如下:@CodeCaster:remote validation可以帮助您实现非常复杂的验证:通过两个或三个字段。它还允许通过数据库中的附加数据来验证数据。这不是唯一的方法,但我喜欢这种方法。听起来不错。但我的案子不适合我,我不想被发回只是为了验证。我认为这没有意义。您能发送示例吗?@SirajHussain我不能发送示例,您必须在代码中实现它。在什么程序集中定义了RequiredIfAttribute?我找不到,我想这没什么意义。您能发送示例吗?@SirajHussain我不能发送示例,您必须在代码中实现它。在什么程序集中定义了RequiredIfAttribute?我找不到它。