привязать данные к раскрывающемуся списку частичного просмотра в MVC3, используя пакет просмотра

Я хочу создать элемент управления частичным представлением в MVC 3, чтобы использовать этот элемент управления во всем приложении. По моему частичному мнению, есть 2 выпадающих списка: один для страны, а другой для штатов. Но когда я использовал это, я получаю сообщение об ошибке. Пожалуйста, посоветуйте, как я могу сделать идеальный пользовательский элемент управления в MVC? Как я могу привязать данные к DDL из sql через сумку просмотра?

Спасибо.


person Sinoy Devassy    schedule 22.02.2012    source источник


Ответы (1)


Вам нужно, чтобы 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) %>
person Manas    schedule 22.02.2012