C#MVC.net-如何在视图表单操作中传递id? for(var i=0;ipc.PendingClasses[i].ClassID) @DisplayFor(pc=>pc.PendingClasses[i].ClassName) @ActionLink(“Remove Class”,“AddClass”,new{RemoveClassID=Model.PendingClasses[i].ClassID},null) }

C#MVC.net-如何在视图表单操作中传递id? for(var i=0;ipc.PendingClasses[i].ClassID) @DisplayFor(pc=>pc.PendingClasses[i].ClassName) @ActionLink(“Remove Class”,“AddClass”,new{RemoveClassID=Model.PendingClasses[i].ClassID},null) },c#,C#,我可以通过ActionLink获得上面代码中正确的类id。(示例-我想删除类id为6的情况,RemoveClassID变量可以传递类id为6的情况。) @使用(Html.BeginForm(“Remove”、“RemoveClass”、FormMethod.Post、htmlAttributes:new{@class=“form horizontal”})) { 对于(var i=0;ipc.PendingClasses[i].ClassID) @DisplayFor(pc=>pc.Pendi

我可以通过ActionLink获得上面代码中正确的类id。(示例-我想删除类id为6的情况,RemoveClassID变量可以传递类id为6的情况。)


@使用(Html.BeginForm(“Remove”、“RemoveClass”、FormMethod.Post、htmlAttributes:new{@class=“form horizontal”}))
{
对于(var i=0;ipc.PendingClasses[i].ClassID)
@DisplayFor(pc=>pc.PendingClasses[i].ClassName)
去除
}
}

我无法使用FormAction获得上面代码的正确类id。(示例-我想删除类id为6,RemoveClassID变量可以传递类id为7。)

您有一个带有多个隐藏控件和多个提交按钮的表单。单击“提交”按钮时,整个表单将被提交,因此无论单击哪个按钮,相同的内容都将发送回服务器。要做你想做的事情,你需要多个表单,每个表单有一个提交按钮。以下方面应起作用:

@using (Html.BeginForm("Remove", "RemoveClass", FormMethod.Post, htmlAttributes: new { @class = "form-horizontal" }))
{
    for (var i = 0; i < Model.PendingClasses.Count; i++)
    {
        <td>
            @Html.DisplayFor(pc => pc.PendingClasses[i].ClassID)
        </td>
        <td>
            @Html.DisplayFor(pc => pc.PendingClasses[i].ClassName)
        </td>
        <td>
            <input type="hidden" name="RemoveClassID" value="@Model.PendingClasses[i].ClassID" />
            <button type="submit" class="btn btn-default" name="btnRemove">Remove</button>
        </td>
      </tr>
    }
}
for(var i=0;ipc.PendingClasses[i].ClassID)
@DisplayFor(pc=>pc.PendingClasses[i].ClassName)
去除
}
}

注意:我还在表单的开头添加了一个
,因为您似乎缺少一个。

您有一个具有多个隐藏控件和多个提交按钮的表单。单击“提交”按钮时,整个表单将被提交,因此无论单击哪个按钮,相同的内容都将发送回服务器。要做你想做的事情,你需要多个表单,每个表单有一个提交按钮。以下方面应起作用:

@using (Html.BeginForm("Remove", "RemoveClass", FormMethod.Post, htmlAttributes: new { @class = "form-horizontal" }))
{
    for (var i = 0; i < Model.PendingClasses.Count; i++)
    {
        <td>
            @Html.DisplayFor(pc => pc.PendingClasses[i].ClassID)
        </td>
        <td>
            @Html.DisplayFor(pc => pc.PendingClasses[i].ClassName)
        </td>
        <td>
            <input type="hidden" name="RemoveClassID" value="@Model.PendingClasses[i].ClassID" />
            <button type="submit" class="btn btn-default" name="btnRemove">Remove</button>
        </td>
      </tr>
    }
}
for(var i=0;ipc.PendingClasses[i].ClassID)
@DisplayFor(pc=>pc.PendingClasses[i].ClassName)
去除
}
}

注意:我还在表单的开头添加了一个
,因为您似乎缺少一个。

您可能将项目数与每个项目的数组计数弄错了。如果列表或数组中有7项,则第7项将是项[6],而不是项[7]。我想你得到的类ID是正确的。为什么不得到正确的类ID呢?上面和下面都是相同的代码?(使用ActionLink或FormAction传递id之间的差异。)您可能将项目数与每个项目的数组计数弄错了。如果列表或数组中有7项,则第7项将是项[6],而不是项[7]。我想你得到的类ID是正确的。为什么不得到正确的类ID呢?上面和下面都是相同的代码?(使用ActionLink或FormAction传递id之间的差异。)
for (var i = 0; i < Model.PendingClasses.Count; i++)
{
    @using (Html.BeginForm("Remove", "RemoveClass", FormMethod.Post, htmlAttributes: new { @class = "form-horizontal" }))
    {
        <tr>
            <td>
                @Html.DisplayFor(pc => pc.PendingClasses[i].ClassID)
            </td>
            <td>
                @Html.DisplayFor(pc => pc.PendingClasses[i].ClassName)
            </td>
            <td>
                <input type="hidden" name="RemoveClassID" value="@Model.PendingClasses[i].ClassID" />
                <button type="submit" class="btn btn-default" name="btnRemove">Remove</button>
            </td>
        </tr>
    }
}