我的表单上有一组文本框,这些文本框是通过如下形式生成的:
查看:
@for (int i = 0; i < Model.TransomeList.Count; i++)
{
ItemDrops tranItem = Model.TransomeList.ElementAt(i);
<div class="form-group">
@Html.Label(tranItem.ItemName.ToString(), new { @class = "col-sm-6 control-label" })
<div class="col-sm-6">
@Html.TextBoxFor(x => x.TransomeList[i].ItemPossInfo, new { @class = "form-control" })
@Html.HiddenFor(x => x.TransomeList[i].ItemName)
</div>
</div>
}
我使用流畅的验证,并希望确保每个文本框都是必需的(理想情况下,在错误消息中说明哪个文本框)
在我的Validator课程中,我有:
RuleFor(x => x.TransomeList).SetCollectionValidator(new TransDropValidator());
使用:
public class TransDropValidator : AbstractValidator<ItemDrops>
{
public TransDropValidator()
{
RuleFor(x => x.ItemPossInfo)
.NotNull().WithMessage("Transom position required{O}", x => x.ItemPossInfo);
}
}
然而,这并没有验证任何事情......我需要做什么?
由于
答案 0 :(得分:0)
您还需要
@Html.ValidationMessageFor()
我假设您正在进行服务器端验证。如果没有,那么验证器需要进一步的工作,你需要生成JavaScript组件。