使用viewbag将数据绑定到MVC3中partialview的下拉列表

问题描述:

我想在MVC 3中创建一个局部视图控件以在我的整个应用程序中使用此控件。在我的部分观点中,有两个下拉列表,一个针对国家,另一个针对国家。但是,当我使用这个我越来越error.please建议如何使MVC中完美的用户控制?我怎样才能通过查看包从SQL绑定数据到DDL?使用viewbag将数据绑定到MVC3中partialview的下拉列表

谢谢。

您需要的IEnumerable显示在DDL, 试试下面的例子(我没有测试过,某些类型的错误可能有)

定义你的模型一样,

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; 
} 
} 

定义控制器动作像,

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全面检查 – 2012-02-22 10:53:24