1

У меня есть мнение, как СледитModelState Достоверность Multiple Добавить Сценарий

@model List<item> 

@using (Html.BeginForm("Create", "Item", FormMethod.Post)) 
{ 
    @for (int i = 0; i < Model.Count; i++) 
    { 
     ..... 
     @Html.EditorFor(model => Model[i].ItemName) 
     ..... 
    } 
<input type="submit" class="btn btn-primary" value="Create Item" /> 
} 

В ViewModel это ItemName имеет обязательный атрибут аннотации для целей проверки, но то, что мне действительно нужно, по крайней мере один ItemName быть заполнено Предположу, что эта модель верна, но я всегда получите ModelState IsValid = False

+0

посмотрел здесь http://stackoverflow.com/questions/6075339/mvc-form-validation-on-multiple-fields ?? –

ответ

1

Я был в состоянии решить эту проблему с помощью:

public class CreateItemCustomValidation : ValidationAttribute 
{ 
    public override bool IsValid(object value) 
    { 
     var list = value as List<SingleItem>; 
     if (list != null) 
     { 
      if (list.Where(o => o.ItemName!= null && !String.IsNullOrEmpty(o.ItemName) && !String.IsNullOrWhiteSpace(o.ItemName)).Count() > 0) 
      { 
       return true; 
      } 
     } 
     return false; 
    } 
} 

валидация работает, но в литье стреляет до POST

Смежные вопросы