我有一个视图跟随
@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
答案 0 :(得分: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之前触发