Проверка ModelState в сценарии с несколькими добавлениями

У меня есть вид следующим образом

@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 имеет аннотацию атрибута Required для целей проверки, но мне действительно нужно заполнить хотя бы одно ItemName, чтобы предположить, что эта модель действительна, но я всегда буду получать ModelState IsValid = False




Ответы (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

person Rami Sakr    schedule 06.01.2014