我正在开发一个ASP.Net MVC 3 Web应用程序使用实体框架4.1。我在显示CheckBoxList时遇到问题。让我解释。ASP.Net MVC 3 EditorFor CheckBoxList
我有两个视图模型的
public class ViewModelShiftSubSpecialties
{
public IEnumerable<ViewModelCheckBox> SpecialtyList { get; set; }
}
public class ViewModelCheckBox
{
public string Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
public string Specialty { get; set; }
}
在我的控制器,我填充我的ViewModels
IList<RelationshipGradeSub> gradeSubSpecialties = GetSubSpecialtiesForGrade(firstShiftGrade.gradeID);
ViewModelShiftSubSpecialties viewModel = new ViewModelShiftSubSpecialties();
var checkBoxList = new List<ViewModelCheckBox>();
foreach (var item in gradeSubSpecialties)
{
ViewModelCheckBox chkBox = new ViewModelCheckBox { Id = item.subID.ToString(), Name = item.ListSubSpecialty.description, Checked = false, Specialty=item.ListSubSpecialty.ListItemParent.description };
checkBoxList.Add(chkBox);
}
viewModel.SpecialtyList = checkBoxList;
return View(viewModel);
我也有用作EditorTemplate显示我的复选框的局部视图
@Html.HiddenFor(x => x.Id)
@Html.CheckBoxFor(x => x.Checked)
@Html.LabelFor(x => x.Name, Model.Name)<br />
然后在我的视图中,我尝试通过Model.Specialty进行过滤并对ite进行分类MS分为三个checkboxlists根据自己的特长,即:
@foreach (var sub in Model.SpecialtyList)
{
if (sub.Specialty.Equals("Medicine"))
{
@Html.EditorFor(m => m.SpecialtyList)
}
else if (sub.Specialty.Equals("Surgery"))
{
@Html.EditorFor(m => m.SpecialtyList)
}
else if (sub.Specialty.Equals("Pathology"))
{
@Html.EditorFor(m => m.SpecialtyList)
}
}
但是,这似乎并没有在所有的工作,这是什么给了我什么都不是在第一或第二的CheckBoxList,然后在所有列表项第三个复选框列表。基本上我想实现的是这样的
可能有人请给我一些指点得到这个工作?
谢谢。
调试并观察Model.SpecialtyList项目0和1索引元素 – Yorgo 2012-04-18 11:03:57
您是否尝试过使用这个:'@ Html.EditorFor(m => sub)'? – 2012-04-18 11:04:04
那你到底在做什么呢? – mattytommo 2012-04-18 11:09:01