2012-02-22 2 views
0

MVC 3에서 부분 뷰 컨트롤을 만들어 전체 응용 프로그램에서이 컨트롤을 사용하고 싶습니다. 내 부분보기에는 국가에 대한 드롭 다운 목록과 국가에 대한 드롭 다운 목록이 있습니다. 그러나 내가 이것을 사용하면 error.please가 MVC에서 완벽한 사용자 컨트롤을 만들 수있는 방법을 조언 해 주나요? 뷰 백을 통해 SQL에서 DDL로 데이터를 바인딩하는 방법은 무엇입니까?뷰백을 사용하여 MVC3의 partialview 드롭 다운 목록에 데이터 바인딩

감사합니다. 당신은 다음의 예를보십시오 , DDL에 표시 할 IEnumerable을 필요

답변

4

같은 모델을 정의

public class MyModel 
{ 
public SchduleEnum SelectedCountry{ get; set; } 
public ProgramCatagory SelectedState{ get; set; } 
private IEnumerable<SelectListItem> stateList; 
private IEnumerable<SelectListItem> countriesList; 

public IEnumerable<SelectListItem> CountriesList; 
{ 
    get { return this.countriesList;} 
} 

public IEnumerable<SelectListItem> StateList 
{ 
    get { return this.stateList } 
} 

private void SetCountryList(IEnumerable<string> countries) 
{ 
    List<SelectListItem> items=new List<SelectListItem>(); 
    countries.ToList().ForEach(s=>{    
     items.Add(new SelectListItem() 
      { 
       Text = s, 
       Value = s 
      }); 
    }); 
    this.countriesList = items; 
} 

private void SetStateList(IEnumerable<string> states) 
{ 
    List<SelectListItem> items = new List<SelectListItem>(); 
    states.ToList().ForEach(s => 
    { 
     items.Add(new SelectListItem() 
     { 
      Text = s, 
      Value = s 
     }); 
    }); 
    this.stateList= items; 
} 
} 

컨트롤러를 정의합니다 (I 테스트하지 않은, 어떤 종류의 오류가있을 수 있습니다) 액션 같은

public PartialViewResult GetCountryList() 
{ 

    MyModel model = new MyModel(); 
var countries= *** ;//service call to get countries list 
var states = *** ;//service call to get stateslist 
    model.SetCOuntryList(countries); 
    model.SetStateList(states); 
    return View(model); 
} 

하고보기에

,

<%:Html.DropDownListFor(m=>m.SelectedCountry,Model.countriesList)%> 
<%:Html.DropDownListFor(m=>m.SelectedSState,Model.stateList) %> 
+0

+1 manas.com 포괄적 인 작업 –

관련 문제