【问题标题】:ModelState Validation In Multiple Add Scenario多个添加场景中的 ModelState 验证
【发布时间】:2014-01-06 13:58:37
【问题描述】:

我的观点如下

@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 来假设这个 Model 是有效的,但我总是会得到 The ModelState IsValid = False

【问题讨论】:

标签: asp.net-mvc modelstate asp.net-mvc-viewmodel asp.net-mvc-validation asp.net-mvc-controller


【解决方案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 之前触发

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多