我需要向用户呈现是/否类型问题的列表。这是我的模特:
class QuestionModel {
public String ID {get; set;}
public String Title {get; set; }
public bool Value {get; set; }
}
class QuestionsModel {
List<QuestionModel> Questions {get; set}
}
在我的Razor代码中,我可以做类似的事情:
@foreach(var item in Model.Questions) {
@Html.Label(item.Title);
@Html.RadioButton(item.ID, "Yes");
@Html.RadioButton(item.ID, "No");
}
但是,我没有看到QuestionModel中的Value字段将如何根据用户选择的内容进行填充。请帮忙。问候。
答案 0 :(得分:1)
首先,您需要使用for
循环或EditorTemplate
来生成集合,否则控件将无法正确命名且无法在回发后绑定
@model QuestionsModel
@(using Html.BeginForm())
{
for (int i = 0; i < Model.Questions.Count; i++)
{
string yes = i + "Yes";
string no = i + "No";
@Html.HiddenFor(m => m.Questions[i].ID)
@Html.DisplayFor(m => m.Questions[i].Title) // assuming you don't want to edit this
@Html.RadioButtonFor(m => m.Questions[i].Value, true, new { id = @yes })
<label for="@yes">Yes</label>
@Html.RadioButtonFor(m => m.Questions[i].Value, false, new { id = @no })
<label for="@no">No</label>
}
<input type="submit" value="Save" />
}