【发布时间】:2014-05-20 22:30:49
【问题描述】:
我的表单上有一组文本框,它们是在 foeach 中生成的,如下所示:
查看:
@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>
}
我正在使用流利的验证,并希望确保每个文本框都是必需的(最好在错误消息中说明哪个文本框)
在我的验证器类中,我有:
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);
}
}
但是这并不能验证任何东西...我需要做什么?
谢谢
【问题讨论】:
-
您是其他流利的验证器验证器正在工作还是只有这一个?您是否按照此处所述正确设置了 MVC 集成:fluentvalidation.codeplex.com/wikipage?title=mvc?因为您的代码应该可以正常工作(至少是服务器端验证部分,因为
SetCollectionValidator不支持客户端验证......) -
@nemesv 其他验证工作,但这对我不起作用
标签: asp.net-mvc validation fluentvalidation