从View Model中的List创建CheckboxFor

时间:2014-07-25 09:22:10

标签: asp.net-mvc-4 asp.net-mvc-viewmodel checkboxfor

我的视图模型类是

 public class StudentQuestions
    {
        public int StudentId{ get; set; }
        public int FormId { get; set; }
        public virtual ICollection<Questions> Question { get; set; }
    }

和问题类是

public partial class Questions
    {
        public int questionID { get; set; }
        public string field_name { get; set; }
        public string question { get; set; }
        public int qutyp_refID {get,set}
        public string description { get; set; }
        public int ord { get; set; }
        public bool IsEnabled { get; set;} 
        public virtual ICollection<Answers> Answers { get; set; }

}      在我看来

@model Test.ViewModels.StudentQuestions
 <table>    
    <tr><td>@Model.FormId</td><td>@Model.StudentId</td></tr>
    @foreach(var q in Model.Question)
    {
        <tr>
          <td> @Html.CheckBoxForFor(i=> i.Question.question)</td>
        </tr>
    }
 </table>

我无法访问i.Question.question但我可以在CheckBox中访问,TextBox如下所示,我想将Textbox更改为TextBoxFor,CheckBox更改为CheckBoxFor和TextBox更改为TextBoxFor

@foreach(var q in Model.Question)
        {   
   <tr>
         @if (@q.qutyp_refID == 4)
            {
            <td>@Html.CheckBox(q.questionID.ToString())
            </td>
            }
            else if (@q.qutyp_refID <= 2)
            {    
            <td>@Html.TextBox("txtDateQuestions", DateTime.Today.ToString("dd/MM/yyyy"), new { style = "width: 120px" }) </td>
            }
            else
            {
            <td>@Html.TextBox(q.questionID.ToString(), null)</td>
            }
        </tr>
}

提前致谢.........

1 个答案:

答案 0 :(得分:2)

试试这个,

 @Html.CheckBoxFor(i => m.questionID, new { id = @m.questionID, @checked = "checked", Name = "CheckBox" })<span>m.description</span> 

示例

型号

public class AssignProject
 {
        public Guid Id { get; set; }
        public string EmployeesName { get; set; }
        public Guid? EmployeeId { get; set; }
        public Guid? ProjectId { get; set; }
        public string AssignEmployeeId { get; set; }
        public bool IsChecked { get; set; }
 }

查看

     @foreach (var item in Model)
     {
  @Html.CheckBoxFor(m => item.IsChecked, new { value = item.EmployeeId, id = "chk_" + @item.EmployeeId, @checked = "checked", Name = "CheckBox" })

     }