Erhalten habe ich unten Modellstrukturausgewählte Radiobutton Werte in MVC
public class Quiz
{
public List<Question> Questions { get; set; }
}
public class Question
{
public int Id { get; set; }
public String QuestionText { get; set; }
public List<Option> Options { get; set; }
public int AnswerId { get; set; }
}
public class Option
{
public int Id { get; set; }
public String OptionText { get; set; }
public int DisplayOrder { get; set; }
}
Und meiner Meinung nach ist wie unten, wo ich alle Fragen und Optionen
foreach (var question in Model.Questions)
{
@Html.DisplayFor(modelItem => question.QuestionText) <br />
foreach (var option in question.Options)
{
@Html.RadioButton("Id", option.Id)@option.OptionText
}
}
<input type="submit" value="Submit" />
Ich bin nicht die Werte immer ich die Anzeige für alle ausgewählten Radiobuttons, es gibt immer einen Wert in Formularsammlung zurück
[HttpPost]
public ActionResult Quiz(Quiz userResponse, FormCollection form)
{
foreach (var item in form.AllKeys)
{
string value = form[item];
// save data
}
//var selectedOption = frm["Id"];
return View();
}
Können Sie bitte h Elfe?
Sie können keine "foreach" -Schleife für die "Fragen" verwenden - Sie benötigen eine 'for' -Schleife oder eine benutzerdefinierte' EditorTemplate'. In [Antwort] (http://stackoverflow.com/questions/28055287/asp-net-mvc-5-group-of-radio-buttons/28057533#28057533) finden Sie ein Beispiel zum Generieren der Ansicht. Und verwenden Sie 'FormCollection' nicht –
@StephenMuecke Sie sollten dies eine Antwort geben. OP es ist wahrscheinlich nur 1 Wert in der Sammlung zurückgeben, weil die HTML-Markup für die Radio-Tasten gegenseitig überschreiben (alle gleichen Namen und ID), deshalb müssen Sie für jede Schleife zu unterscheiden. –
@MartinMazzaDawson, Zeitverschwendung, um einigen Benutzern zu helfen :) –