编辑列表时TagHelper验证

时间:2016-01-11 22:13:06

标签: asp.net-core-mvc tag-helpers

我正在尝试在编辑项目列表时使用TagHelpers。

这是视图中使用帮助程序的代码:

@for (var i = 0; i < Model.Items.Count; i++)
        {
            <tr>
                <td>
                    <input asp-for="Items[i].Name" />
                    <span asp-validation-for="Items[i].Name" class="text-danger" />
                </td>
            </tr>
        }

输入帮助程序按预期工作,ModelState正确填充验证错误,但验证错误未显示给用户。

我猜测渲染验证标签存在问题。

<td>
                    <input class="input-validation-error" data-val="true" data-val-required="The Name field is required." id="Items_0__Name" name="Items[0].Name" value="" type="text">
                    <span class="text-danger field-validation-error" data-valmsg-for="Items[0].Name" data-valmsg-replace="true"></span>
</td>

可能是输入标识为Items_0__Name(带有下划线),但验证标记会查找Items[0].Name

是否有解决方法使验证能够正常使用?

1 个答案:

答案 0 :(得分:0)

我从未见过使用foreach的任何问题

@foreach (var item in Model.Items)
{
    <tr>
        <td>
            <input asp-for="item.Name" />
            <span asp-validation-for="item.Name" class="text-danger" />
        </td>
    </tr>
}