2017-04-27 5 views
1

Ich möchte eine Liste der ausgewählten Kontrollkästchen Werte erhalten. Wie kann ich das tun? Ich arbeite an einer ASP.NET MVC 5 App. Diese App hat eine grundlegende Form. enter image description hereListe der ausgewählten Kontrollkästchen Wert in asp.net erhalten mvc

Meine Ansicht Code

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

} 

Das Modell für meine Form folgt wie das aussieht:

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

Mein Controller-Code:

+1

Um ... Sie scheinen aus dem Controller-Code zu verlassen? –

+1

Gibt es einen Grund, warum Sie Html.CheckBoxFor nicht verwenden? – Neil

+0

Sie geben Ihren Checkboxen keinen "Wert". Aber Sie können keine 'foreach'-Schleife verwenden, um Formularsteuerelemente für eine Sammlung zu generieren - lesen Sie [diese Antwort] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)) noch können Sie eine versteckte Eingabe an ein komplexes Objekt binden. –

Antwort

0

Die Namen der Checkbox gleich sein sollten in einer Liste gebunden werden.

+2

Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/15966974) – bc004346

+0

Die Frage lautete: 'Ich möchte eine Liste ausgewählter Checkbox-Werte erhalten 'und ein Beispiel, in dem er einen anderen Namen an seine Checkbox-Liste bindet. Es sind also keine Bemerkungen oder Kritiken, nur die Antwort. Ich kann ein Beispiel schreiben, wo der Name gleich ist, wenn das nicht klar ist. –

0

können Sie tun, mit Httppost, können Sie auch diese

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

     }); 

mit JQuery zu tun und dann checkedArray senden über Ajax an die Steuerung

Verwandte Themen