我有一个名为AnswerSheet的模型,它是一堆字符串答案。剪下面:
public class PassengerAnswerSheet
{
public int ID { get; set; }
[Required]
[Display(Name = "Question 1")]
public string Q1 { get; set; }
[Required]
[Display(Name = "Question 2")]
public string Q2 { get; set; }
对于每个答案,我有多个复选框,我希望答案是由所选复选框文本生成的字符串。
复选框是使用不同的模型构建的,本例中为动物:
public class Animal
{
public bool IsChecked { get; set; }
public String Name { get; set; }
}
目前我可以在Razor表格上使用此代码显示问题以显示我想要的内容:
<div class="form-group">
@Html.LabelFor(model => model.Q1, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@foreach(var animal in Curbside.Helpers.AnswerLists.CreateAnimalsList())
{
string Hi = (animal.Name);
@Html.CheckBoxFor(item => animal.IsChecked)
@Hi
<br />
}
@Html.EditorFor(model => model.Q1)
@Html.ValidationMessageFor(model => model.Q1)
</div>
</div>
现在我需要弄清楚的是,当用户提交表单时,如何让“Foreach”部分的复选框生成一个字符串,例如它将生成“Cow,Pig”作为Q1的答案,如果用户检查了牛和猪旁边的方框。我一直在阅读这篇文章,但还没有弄明白,我感到被困在这里。将继续调查。显然我需要摆脱@ Html.EditorFor,但我不知道该替换它或如何使用它。