2013-05-22 2 views
1

У меня есть вид моделиASP.NET MVC4 Validation

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- По крайней мере одно логическое значение должно быть истинным, и необходимо соответствующее время.

, пожалуйста, предложите мне любой простой способ.

Thanks

+1

http://fluentvalidation.codeplex.com/ – Ramunas

ответ

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 объектов.

+0

Я думаю, что это не будет иметь смысла. можете ли вы отправить пример? –

+0

@SirajHussain Я не могу отправить пример, вам придется реализовать это в своем коде. – CodeCaster

+0

В какой сборке определен RequiredIfAttribute? Я не могу найти его. – VikciaR

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; } 
+0

Как это поможет в публикации и проверке новой модели? – CodeCaster

+0

Не могли бы вы отправить правильный пример. –

+0

Полный образец здесь: http://www.tugberkugurlu.com/archive/asp-net-mvc-remote-validation-for-multiple-fields-with-additionalfields-property – VikciaR