C# 获取asp.net mvc中选定复选框值的列表

C# 获取asp.net mvc中选定复选框值的列表,c#,asp.net-mvc,C#,Asp.net Mvc,我想获得选中复选框值的列表。我该怎么做?我正在开发一个ASP.NETMVC5应用程序。此应用程序有一个基本表单。 我的视图代码 @using (Html.BeginForm()) { <table class="table"> <thead> <tr> <th>Field Name</th> @foreach (var f

我想获得选中复选框值的列表。我该怎么做?我正在开发一个ASP.NETMVC5应用程序。此应用程序有一个基本表单。

我的视图代码

@using (Html.BeginForm())
{
    <table class="table">
        <thead>
            <tr>
                <th>Field  Name</th>
                @foreach (var field in Model.Actions)
                {
                    <th>@field.Name</th>
                }
            </tr>
        </thead>
        <tbody>

            @foreach (var permission in Model.PermissionUserField)
            {
                <tr>
                    <td> @permission.Field.Name</td>
                    @foreach (var peruserAction in permission.PermissionUserFieldActions)
                    {
                        <td>
                            @if (peruserAction.Active)
                            {
                                @Html.HiddenFor(x=> x.PermissionUserFieldForUser)

                                <input type="checkbox" checked name="field_@(permission.FieldId)_[@peruserAction.Id]" />
                            }
                            else
                            {
                                <input type="checkbox" name="field_@(permission.FieldId)_[@peruserAction.Id]" />
                            }
                        </td>
                    }

                </tr>
            }

        </tbody>
    </table>

    <br />

    <input type="submit" value="Save" />

}
@使用(Html.BeginForm())
{
字段名
@foreach(Model.Actions中的var字段)
{
@字段名
}
@foreach(Model.PermissionUserField中的var权限)
{
@permission.Field.Name
@foreach(permission.PermissionUserFieldActions中的var peruserAction)
{
@if(peruserAction.Active)
{
@Html.HiddenFor(x=>x.PermissionUserFieldForUser)
}
其他的
{
}
}
}

}
我的表单的模型如下所示:

 public class NewViewModel
    {
        public List<PermissionUserField> PermissionUserField{ get; set; }
        public List<PermissionUserField> PermissionUserFieldForUser { get; set; }
        public List<Action> Actions { get; set; }
        public List<Field> Field { get; set; }

    }

 public partial class Action
    {
        public int Id { get; set; }

        [StringLength(50)]
        public string Name { get; set; }

    }

    public partial class PermissionUserField
    {
        public int Id { get; set; }
        public int UserId { get; set; }
        public User User { get; set; }
        public int FieldId { get; set; }
        public Field Field { get; set; }    
        public List<PermissionUserFieldAction> PermissionUserFieldActions { get; set; }
    }
    public partial class PermissionUserFieldAction
    {
        public int Id { get; set; }
        public int ActionId { get; set; }
        public Action Action { get; set; }
        public int PermissionUserFieldId { get; set; }
        public PermissionUserField PermissionUserField { get; set; }
        public bool Active { get; set; } = false;
    }
公共类NewViewModel
{
公共列表PermissionUserField{get;set;}
公共列表权限UserFieldForUser{get;set;}
公共列表操作{get;set;}
公共列表字段{get;set;}
}
公共部分集体诉讼
{
公共int Id{get;set;}
[长度(50)]
公共字符串名称{get;set;}
}
公共部分类PermissionUserField
{
公共int Id{get;set;}
public int UserId{get;set;}
公共用户{get;set;}
public int FieldId{get;set;}
公共字段{get;set;}
公共列表权限UserFieldActions{get;set;}
}
公共部分类PermissionUserFieldAction
{
公共int Id{get;set;}
public int ActionId{get;set;}
公共操作动作{get;set;}
public int PermissionUserFieldId{get;set;}
公共PermissionUserField PermissionUserField{get;set;}
public bool Active{get;set;}=false;
}

我的控制器代码:

复选框的名称应与绑定到列表中的名称相同。

复选框的名称应与绑定到列表中的名称相同。

您可以使用HttpPost执行此操作,也可以使用JQuery执行此操作

var checkedArray=
 $('input:checkbox').each(function () {//iterate all checboxes in page
        var data={ "IsChecked":   this.checked ,"Name":this.attr('name')}
      checkedArray.push();

        });

然后通过ajax将checkedArray发送给控制器。您可以使用HttpPost来完成这项工作,也可以使用JQuery来完成这项工作

var checkedArray=
 $('input:checkbox').each(function () {//iterate all checboxes in page
        var data={ "IsChecked":   this.checked ,"Name":this.attr('name')}
      checkedArray.push();

        });

然后通过ajax将checkedArray发送给控制器

Um。。。您似乎遗漏了控制器代码?您不使用Html.CheckBoxFor有什么原因吗?您没有给您的复选框一个
值。但您不能使用
foreach
循环为集合生成表单控件-引用,也不能将隐藏的输入绑定到复杂对象。请在控制器内创建actionMethod,它接受FormCollection或ViewModel,当您按submit时,将调用该方法,您将自动获取这些复选框的值。使用
for
循环和
@Html.CheckboxFor()
绑定到
bool
属性-
@Html.CheckboxFor(m=>m.PermissionUserField[i].PermissionUserFieldActions[j].IsActive)
Um。。。您似乎遗漏了控制器代码?您不使用Html.CheckBoxFor有什么原因吗?您没有给您的复选框一个
值。但您不能使用
foreach
循环为集合生成表单控件-引用,也不能将隐藏的输入绑定到复杂对象。请在控制器内创建actionMethod,它接受FormCollection或ViewModel,当您按submit时,将调用该方法,您将自动获取这些复选框的值。使用
for
循环和
@Html.CheckboxFor()
绑定到
bool
属性-
@Html.CheckboxFor(m=>m.PermissionUserField[i].PermissionUserFieldActions[j].IsActive)
这并没有提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-问题是:
我想获得选中复选框值的列表
,以及他将不同名称绑定到其复选框列表的示例。所以这不是评论或批评,只是答案。如果不清楚,我可以写一个名称相同的例子。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-问题是:
我想获得选中复选框值的列表
,以及他将不同名称绑定到其复选框列表的示例。所以这不是评论或批评,只是答案。如果不清楚,我可以写一个名称相同的例子。