【问题标题】:Get values with Multiple checkboxes in Razor MVC4在 Razor MVC4 中使用多个复选框获取值
【发布时间】:2015-08-25 17:08:51
【问题描述】:

目前我正在开发 MVC4 Web 应用程序,我需要从网页的多个复选框中获取选中或未选中的值。这是我在 View 中呈现复选框的代码。

using (Html.BeginForm("Controller", "NameSpace", FormMethod.Post))
{          
     @foreach (var Leave in Model)
        {
            <tr class="Row">
                <td>
                    @Html.CheckBox("leaves")
                </td>
                <td>@Leave.EmployeeId</td>
                <td>@Leave.EmployeeName</td>
            </tr>
        }    
    <input type="submit" name="btn" value="Approve"/>
    <input type="submit" name="btn" value="Reject"/>
}

如何在我的控制器中获取这些复选框的值...?

【问题讨论】:

  • 谢谢您.. @JediDula 进行编辑。

标签: c# asp.net-mvc-4 razor checkbox


【解决方案1】:

在复选框上输入一个名称,您可以使用请求在控制器上提取值

@Html.CheckBox("leaves", new { name = "leaves" })

然后是控制器

string selected = Request.Form["leaves"].ToString();
string[] selectedList = selected.split(',');
foreach(var temp in selectedList){
    // do something with the result
}

这将返回一个逗号分隔的列表 (1,5,8),其中包含所有选定复选框的 id(如果有超过 1 个)。

【讨论】:

  • 我在答案中添加了更多代码。如果您遇到问题,请告诉我在哪里提供帮助。
  • 我不认为应该只将表单主体的一部分作为视图模型发布。将属性添加到您的视图模型并使用 editorFor 或 checkboxFor。
【解决方案2】:

你最好使用:

string[] selectedList =Request.Form.GetValues("leaves");

代替:

string selected = Request.Form["leaves"].ToString();
string[] selectedList = selected.split(',');

用于获取一个数组而不是一个需要拆分的连接字符串。

此外,通过这种方式,您不必担心值中有逗号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2015-11-13
    • 2021-01-23
    相关资源
    最近更新 更多