最近我一直在研究一个相当复杂的用户界面,我必须调整默认的集合绑定,使用基于1的集合而不是基于0的集合,当使用Html.InputFor时,最终输入如下所示: ):
.select2-results .select2-disabled, .select2-results__option[aria-disabled=true] {
display: none;
}
$('#optionId').prop('disabled', true);
最初这不适用于默认情况下MVC的模型绑定器的工作方式,但我在Phil Haack的这篇文章中详细介绍了如何使用你想要的模型绑定器绑定到集合的任何内容。http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ 这使得我在UI中所做的事情变得微不足道,但是现在当我尝试使用流畅的验证进行验证时,流畅的验证返回的名称(正确的)错误消息是索引 - 例如,如果在上面的示例中,Option1是需要,我把它留空,流畅的验证返回名称:
<input name="Model.Collection[1].Options.SomeOption" id="Model_Collection_1__Options_SomeOption" />
<input name="Model.Collection[2].Options.SomeOption" id="Model_Collection_2__Options_SomeOption" />
我使用以下流畅的验证码验证我的收藏:
Model.Collection[0].Options.SomeOption
我想知道的是,如果我搞砸了并且必须重写UI,或者如果有某种方法我可以强制使用名称fluentvalidation让我匹配UI中的名称。 我正在使用fluentvalidation版本6.4
PS我一直在看这个沮丧的一段时间,所以如果问题不是很清楚或者需要更多信息,我可以根据需要编辑问题以获得更多背景信息。