在MVC表单上选择多个复选框

时间:2016-05-11 22:46:46

标签: c# asp.net-mvc razor checkbox

我有一个名为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,但我不知道该替换它或如何使用它。

0 个答案:

没有答案