ASP.NET MVC-Zwei-Wege-Datenbindung von Modell zu Radio-Button-Liste mit Typisierten Modell

Habe ich ein mvc-Ansicht aus einer matrix von radio-buttons. Jede Zeile der radio buttons in einer Gruppe und stellt ein typisiertes Objekt aus dem Modell. Mit der Anleitung von diversen blogs und postings habe ich erfolgreich gebunden, die gepostet form Ergebnisse zu den typisierten Modell-array im controller-action, aber kann nicht scheinen, um erfolgreich den Effekt umzukehren, und binden Sie ein vorhandenes Modell an die radio-Tasten, während die Erhaltung Ihrer ausgewählten oder nicht ausgewählten Zustand.

Mein Modell enthält eine Eigenschaft namens "AnswerValue", die zwischen 0 und 4 und sollte übereinstimmen mit der radiobutton-Namen. Ich habe versucht, die änderung der index-Wert für das Modell mit dem Wert "AnswerId" aber damit die Bindung, die mit der Arbeit war, funktioniert nicht mehr (glaube ich, muss der index null-basiert). Hier sind ein paar Ressourcen, die ich verwendet habe, so weit dies Post und ein Artikel von Scott Hanselman zu bekommen, wo ich bin jetzt.

Wenn jemand keine Einsicht auf, wie das zwei-Wege-Bindung, es wäre sehr geschätzt werden.

Dank

Mein controller:

[AcceptVerbs(HttpVerbs.Post)]
  public ActionResult Save([Bind(Prefix = "SurveyAnswer")] SurveyAnswer[] responses, int SurveyID)
  {

Meiner Sicht:

<%
  int questionIndex = 0; 
  foreach (SurveyAnswer q in Model)
  {

%>
  <%=Html.Hidden("SurveyAnswer.Index", questionIndex)%>
  <%=Html.Hidden("SurveyAnswer["+questionIndex+"].AnswerId", q.AnswerId) %>
  <tr>
    <td style='background-color: #aaaaaa;padding-left: 10px; padding-right: 10px;border-right: solid 1px #fffff;'><%= questionIndex+1 %></td>
    <td style='text-align: right;'><%= q.Question.DisplayValue %></td>
    <td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "0", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue"})%></td>
    <td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "1", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue" })%></td>
    <td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "2", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue" })%></td>
    <td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "3", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue"})%></td>
    <td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "4", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue" })%></td>
  </tr>
<%
    questionIndex++; 
  }
%>
InformationsquelleAutor Jeremy | 2009-12-09
Schreibe einen Kommentar