Problem:
In einem ASP.NET MVC 5-Projekt Der Versuch, mithilfe einer Schleife mehrere Gruppen von Optionsfeldern zu erstellen, führt dazu, dass nur eine Gruppe gebildet wird und die Auswahl der zuvor ausgewählten aufgehoben wird Optionen.
Code:
foreach(var question in Model.GeneralQuestions) { <div class = "well"> <h3> <strong>@question.QuestionString</strong> </h3> @foreach (var answer in question.PossibleAnswers) { @Html.RadioButtonFor(model => question.QuestionString, answer.Answer) @Html.Label(answer.Answer) <br /> } </div> }
Lösung:
1. Ansichtsmodelle verwenden:
Definieren Sie Ansichtsmodelle, die die Daten darstellen, die Sie anzeigen und bearbeiten möchten. In diesem Fall ist es notwendig, Ansichtsmodelle für Fragen und Subjekte zu erstellen, um die Struktur Ihres Datenmodells darzustellen.
2. Optionsfelder in einer Schleife generieren:
Erstellen Sie eine Schleife, um die Optionsfelder zu generieren. Jede Schaltfläche sollte ein eindeutiges Namensattribut haben, das auf der Frage und dem Betreffkontext basiert. Zum Beispiel:
foreach (var subject in Model.Subjects) { @Html.HiddenFor(m => subject.ID) foreach (var question in subject.Questions) { @Html.HiddenFor(m => question.ID) <div> @Html.RadioButtonFor(m => subject.Questions[j].SelectedAnswer, answer.ID, new { id = answer.ID }) <label for="@answer.ID"> @answer.Text </label> </div> } }
3. An Modelleigenschaften binden:
Stellen Sie sicher, dass das Optionsfeld-Attribut Name korrekt an eine Eigenschaft in Ihrem Modell gebunden ist. Jede Gruppe von Optionsfeldern sollte eine separate Eigenschaft zum Speichern der ausgewählten Antwort haben.
4. Controller-Aktionen anpassen:
Ändern Sie die Controller-Aktion Bearbeiten, um das Ansichtsmodell mit Werten aus der Datenbank zu füllen und die Formularübermittlung durch Speichern der ausgewählten Antworten zu verwalten.
Denken Sie daran, den von der Ansicht generierten HTML-Code zu überprüfen, um sicherzustellen, dass die Attribute des Optionsfelds Name für die Bindung an Ihr Modell im Formular korrekt strukturiert sind Einreichung.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich Optionsfelder in ASP.NET MVC 5 mithilfe von Schleifen ordnungsgemäß?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!