2011-01-26 2 views
1

Я создаю экран в своем приложении C# Asp.Net MVC, которое имеет несколько связанных сокращений. Так, например, я выбираю «Категория», а затем вторую капли вниз должны отображать все соответствующие подкатегории для выбранной категории.Asp.Net MVC Model со связанными выпадающими списками

Итак, будет ли модель содержать список, используемый для создания категории, а затем список, первоначально пустой. При выборе категории мне нужно отправить сообщение назад, передав идентификатор, если выбранная категория, затем заполнить список <> Подкатегории ..., а затем создать раскрывающийся список подкатегорий.

Надеюсь, кто-то может помочь с дизайном моей модели. У модели также было бы немало не связанных с списком данных для редактируемого элемента. И я думаю, что модели также потребуется «CategorySelectedId», чтобы я знал, что было выбрано?

ответ

1

Самый лучший способ - использовать AJAX для этого. Вам нужно будет связать событие change с вашим первым полем выбора, а после его изменения вы сделаете запрос AJAX с выбранным значением до некоторого Action. Действие вернет список JSON, который будет разобран и помещен в следующий select box.

Update

Модель для JSON возвращающегося действия может быть анонимным типа действительно, или IEnumerable из SelectListItem. Используйте Linq: `mycollection.select (item => new SelectListItem() {Name = item.Name, Value = item.ID.ToString()});

Если мы предполагаем, что страница выглядит следующим образом:

<form> 
    <select id="MainCat" name="MainCatID"> 
     <option value="1">First option</option> 
     <option value="2">First option</option> 
     <option value="3">First option</option> 
    </select> 

    <select id="SubCat" name="SubCatID" disabled="disabled"> 
     <option value=""> -- Please select a main category -- </option> 
    </select> 
</form> 

Ваша модель будет выглядеть следующим образом:

public class MyModel { 
    public int MainCatID {get;set;} 
    public int SubCatID {get;set;} 
    public IEnumerable<SelectListItem> MainCats {get;set;} 
} 

Конечно вы можете добавить проверки атрибутов и т.д.

+0

Thnaks @Gidon - Что будет ли Модель выглядеть? – Craig

+0

См. Мой ответ на вопрос. – Gidon

+0

Thnaks @Gidon - Мне нужна модель, чтобы иметь vlues для drop mdown тоже, не так ли? То есть список элементов и их значений, чтобы заполнить выпадающее меню? – Craig