簡體   English   中英

獲取asp.net mvc中所選復選框值的列表

[英]get list of selected checkbox value in asp.net mvc

我想獲得所選復選框值的列表。 我該怎么做?我正在開發一個ASP.NET MVC 5應用程序。 這個程序有一個基本形式。 在此輸入圖像描述

我的觀點代碼

@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" />

}

我的表單模型如下所示:

 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;
    }

我的控制器代碼:

復選框的名稱應該相同,以便在列表中綁定。

你可以用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發送到控制器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM