2012-04-18 2 views
3

Entity Framework 4.1을 사용하여 ASP.Net MVC 3 웹 응용 프로그램을 개발 중입니다. 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를 분류하려고합니다. 세 checkboxlists로 MS, 즉 자신의 전문에 기반 :

@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) 
} 

} 

을하지만이 무엇이 저를 제공하는 1 차 또는 2 차 checkboxlist 아무것도하고있는 모든 목록 항목 없으며, 전혀 작동하지 않는 것 세 번째 확인란. 이 같은 기본적으로 내가 무엇을 달성하기 위해 노력하고있다

enter image description here

누군가가 나에게이 작업을 얻을 수있는 몇 가지 포인터를 전해 주 시겠어요?

감사합니다. ViewModelCheckBox @Html.EditorFor(m => m.SpecialtyList)를 사용하는 경우이 경우

@Html.HiddenFor(x => x.Id)   
@Html.CheckBoxFor(x => x.Checked) 
@Html.LabelFor(x => x.Name, Model.Name)<br /> 

, 당신은 List<ViewModelCheckBox>에 보내는,하지만 당신이 보낼해야 할 것은 다음과 같습니다 :

+0

디버그하고 Model.SpecialtyList 항목 0과 1 색인 요소 – Yorgo

+1

을 사용해 디버깅 해 보았습니다 :'@ Html.EditorFor (m => sub)'? –

+0

그러면 실제로 무엇을 얻고 있습니까? – mattytommo

답변

2

내가 체크 박스를 표시하여 EditorTemplate를 추측 유형 ViewModelCheckBox입니다

@Html.EditorFor(m => sub) 

나는 당신을 올바르게 이해하기를 바랍니다.

+0

감사 마리오, 솔루션은 멋지게 작동합니다. – tgriffiths