2017-04-27 40 views
1

選択したチェックボックスの値のリストを取得したい。どうすればいいですか?私はASP.NET MVC 5アプリを開発しています。このアプリは基本的なフォームを持っています。 enter image description hereasp.net mvcで選択したチェックボックスの値のリストを取得

マイビューコード

@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="[email protected](permission.FieldId)_[@peruserAction.Id]" /> 
          } 
          else 
          { 
           <input type="checkbox" name="[email protected](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; 
    } 

+1

を経由してコントローラにcheckedArrayを送ることができないことをあの...あなたはあなたのコントローラのコードを残しているように見えますか? –

+1

Html.CheckBoxForを使用していない理由はありますか? – Neil

+0

あなたはチェックボックスに 'value'を与えません。 http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943(参照してください。[この答え] - しかし、あなたは、コレクションのためにフォームコントロールを生成するために 'foreach'ループを使用することはできません)また、隠れた入力を複雑なオブジェクトにバインドすることもできません。 –

答えて

0

チェックボックスの名前は同じでなければなりませんリストにバインドされます。

+2

これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [口コミより](/レビュー/低品質・ポスト/ 15966974) – bc004346

+0

質問だった: '私は選択したチェックボックスvalues'と、彼はそのチェックボックスのリストに別の名前を結合だ例のリストを取得したいです。それは言葉や批評家ではなく、ちょうど答えです。これが明確でない場合、名前が同じである例を書くことができます。 –

0

あなたは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

関連する問題