在每个循环中循环访问a时生成唯一元素id的过程是什么?
输入
@foreach (var x in Model.Class.Where(h => h.ID == 0))
{
<form method="post">
<input asp-for="@x.Field">
</form>
}
当前asp-for
标签会自动从模型中生成一个ID,但会为循环中呈现的每个元素创建相同的ID。
输出
<input type="checkbox" data-val="true" id="x_Field" name="x_Field" checked="checked" value="true">
没有ASP-FOR
还是我必须对html进行硬核化,而不是使用asp-for
进行这样的迭代?
<input id="x[@x.Id].Field" checked="checked" />
答案 0 :(得分:1)
如果您想为name
属性保留相同的值,而为id
属性保留不同的值,则可以传递一个显式值,该值将覆盖基于属性的标记助手的生成值名称:
@foreach (var x in Model.Class.Where(h => h.ID == 0))
{
<form method="post">
<input asp-for="@x.Field" id="@($"custom{x.ID}")">
</form>
}