2011-09-21 9 views
7

Ho un modello che mi piacerebbe avere una pagina di aggiornamento di massa, ma sto avendo problemi.mvc3 form per un IEnumerable

miei ViewModel:

public class ApproveView 
{ 

    public IEnumerable<MyObject> ObjectList { get; set; } 

} 

A mio avviso ho:

foreach (var item in Model.ObjectList) 
{ 
    <div> 


    <table class="form" width="100%"> 
     <tr> 

      <td>@Html.LabelFor(model => item.Accurate)<br /> 
      @Html.RadioButtonFor(model => item.Accurate, true) Yes 
      @Html.RadioButtonFor(model => item.Accurate, false) No 
      @Html.ValidationMessageFor(model => item.Accurate) 
      </td> 
      <td> 
      @Html.LabelFor(model => item.Comments)<br /> 
      @Html.TextAreaFor(model => item.Comments)<br /> 
      @Html.ValidationMessageFor(model => item.Comments) 
      </td> 
     </tr> 

    </table> 

    @Html.HiddenFor(model => item.ID) 
    @Html.HiddenFor(model => item.CreatedOn) 
    @Html.HiddenFor(model => item.CreatedBy) 
    @Html.HiddenFor(model => item.ModifiedOn) 
    @Html.HiddenFor(model => item.ModifiedBy) 
    <hr /> 
} 

Questo loop sopra i miei oggetti e stampa il modulo. Il problema è che tutti i campi dello stesso tipo hanno lo stesso nome. Ad esempio, tutti i miei pulsanti radio sono collegati e posso selezionarne solo uno.

Come si rendono i nomi di ogni campo univoci e associati a tale oggetto? Sono sulla buona strada o c'è un modo migliore per farlo?

risposta

0

Si potrebbe anche fare un po 'più manualmente:

@{var count = 0;} 
    @foreach (var item in Model.ObjectList){ 
      <div> 
       <table class="form"> 
        <tr> 
         <td>@Html.Label("Accurate" + count, item.Accurate)<br /> 
          @Html.RadioButton("AccurateTrue" + count, true) Yes 
          @Html.RadioButton("AccurateFalse" + count, false) No 
          @Html.ValidationMessage("ValidationAccurate" + count, item.Accurate) 
         </td> 
         <td> 
          @Html.Label("CommentsLabel" + count, item.Comments)<br /> 
          @Html.TextArea("Comments" + count, item.Comments)<br /> 
          @Html.ValidationMessage("ValidationComment" + count, item.Comments) 
         </td> 
        </tr> 
       </table> 
       @Html.Hidden("ID" + count, item.ID) 
       @Html.Hidden("CreatedOn" + count, item.CreatedOn) 
       @Html.Hidden("CreatedBy" + count, item.CreatedBy) 
       @Html.Hidden("ModifiedOn" + count, item.ModifiedOn) 
       @Html.Hidden("ModifiedBy" + count, item.ModifiedBy) 
       <hr /> 
       @count++; 
@} 
+0

Hi. Sono molto nuovo a .net. Come sarebbe il codice di salvataggio nel controller cercare qualcosa di simile? L'ho ottenuto da visualizzare ma non riesco a capire come salvarlo sul mio modello. – lovefaithswing