Заполните выпадающий список из другого выпадающего списка с объектами в MVC 2 - PullRequest
0 голосов
/ 06 декабря 2010

Я пытаюсь разработать простое приложение с расписанием MVC 2 для моего малого бизнеса.

Пока у меня есть своего рода фиктивная модель, пока у меня нет базы данных, просто чтобы упростить процесс разработки.функциональность.Он состоит из следующего:

public class CustomersRepository
{
    public CustomersRepository()
    {
        Customers = new List<Customer>();
    }

    public List<Customer> Customers { get; set; }
}    

public class Task
{
    public Task()
    {
        Customer = new Customer();
        TimeSegments = new List<TimeSegment>();
    }
    public override string ToString()
    {
        return Name;
    }
    public string Name { get; set; }
    public Customer Customer { get; set; }
    public List<TimeSegment> TimeSegments { get; set; }

}

public class TimeSegment
{
    public string Id { get; set; }
    public string Date { get; set; }
    public int Hours { get; set; }

}

public class Customer
{
    //To show the name in the combobox instead of the object name.
    public override string ToString()
    {
        return Name;
    }
    public Customer()
    {
        Tasks = new List<Task>();
    }

    public List<Task> Tasks { get; set; }
    public string Name { get; set; }

}

Я инициализирую хранилище в контроллере и передаю «модель» представлению:

    CustomersRepository model = new CustomersRepository();

    public ActionResult Index()
    {
        InitializeRepository();
        return View(model);
    }

Теперь в представлении я заполняювыпадающий список с клиентами:

    <div>
        <%:Html.DropDownListFor(m => m.Customers, new SelectList(Model.Customers), new {@id="customerDropDownList"}) %>
    </div>

Но тогда мне нужно заполнить второй выпадающий список (taskDropDownList для задач, связанных с конкретным клиентом) на основе выбора, выбранного пользователем в выпадающем списке клиентов.

Но как мне это сделать?Я видел примеры с jQuery, но я не уверен, как применить их в этой ситуации.Кроме того, примеры, кажется, просто заполняют списки строковыми значениями.Мне нужно иметь доступ к объектам со всеми их свойствами.Потому что следующее, что мне нужно сделать, - это заполнить список TimeSegments выбранной задачи значениями из полей ввода (т. Е. Часы, отработанные для определенных дат).И для того, чтобы это было сохранено в «модели» (в конечном итоге в базе данных) в контроллере, как мне получить его там, если только все объекты не являются частью одной и той же модели, связанной с представлением?

IЯ нахожусь в довольно слабом положении, поскольку мне все еще трудно установить связь между View и Controller, по сравнению, например, с разработкой Windows, где эти вещи довольно легко выполнить.Поэтому я был бы очень признателен за хороший пошаговый пример, если бы кто-нибудь был так любезен, предоставив это!

1 Ответ

0 голосов
/ 07 декабря 2010

Я нашел ответ здесь: http://www.pieterg.com/post/2010/04/12/Cascading-DropDownList-with-ASPNET-MVC-and-JQuery.aspx

Требовались некоторые настройки, и я получил помощь от CGK.Смотрите это сообщение:

Каскадный выпадающий список с mvc и jQuery не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...