我认为我有这个表格:
@using (Html.BeginForm())
{
@Html.HiddenFor(o=>o.NoteId)
for (int i = 0; i < Model.Friends.Count; i++)
{
<table>
<tr>
<td>
<p style="font-size: 1.3em; color: black">@Model.Friends[i].Name</p>
</td>
<td>
@Html.CheckBoxFor(x => @Model.Friends[i].Checked)
</td>
</tr>
</table>
}
这会显示一个名称,旁边有一个复选框。当我将它发布到我的控制器时,它传递复选框中的值,但它不会发布名称。是否可以只显示名称,但仍然可以在提交时将其传递给我的控制器?
我试过这样的事情:
@Html.LabelFor(x => @Model.Friends[i].Name)
但它只在我的复选框前显示属性(名称)。 关于如何实现这一目标的任何提示?
答案 0 :(得分:1)
为了获取名称,您需要使用能够生成input
元素的内容,以便它成为表单集合的一部分。
使用@Html.HiddenFor()
将实现您的目标。
for (int i = 0; i < Model.Friends.Count; i++)
{
<table>
<tr>
<td>
<p style="font-size: 1.3em; color: black">@Model.Friends[i].Name</p>
</td>
<td>
@Html.CheckBoxFor(x => @Model.Friends[i].Checked)
@Html.HiddenFor(x => @Model.Friends[i].Name
</td>
</tr>
</table>
}