使用beginform传递值

时间:2014-09-14 20:39:12

标签: asp.net-mvc

我认为我有这个表格:

@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)

但它只在我的复选框前显示属性(名称)。 关于如何实现这一目标的任何提示?

1 个答案:

答案 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>
    }