MVC 3 Каскадные DropDownLists - PullRequest
3 голосов
/ 14 июля 2011

Я не знаю, как точно иметь Каскадные DropDownLists

Мой сценарий следующий:

Категория имеет товары, а товары имеют количество в зависимости от заведения

Я хочу иметь два списка DropDownList, один из которых вы выбираете категорию, следующий заполняется, когда вы выбираете первый из элементов в этой категории, и когда вы выбираете элемент, таблица с количествами для каждого заведения показано на рисунке.

Хорошо, это мой ActionResult

public ActionResult ItemByClinic(Guid? Item_ID, Guid? Category_ID)
    {
        ViewData["Categories"] = InventoryDb.Categories;
        if (Category_ID != null)
        {
            ViewBag.Category_ID = Category_ID;
            ViewData["Items"] = InventoryDb.Items.Where(i => i.Category.ID == Category_ID);
            if (Item_ID != null)
            {
                ViewBag.Item_ID = Item_ID;
                ViewData["Inventory"] = InventoryDb.Items.Single(i => i.ID == Item_ID).Inventory;
            }
        }
        return View();
    }

тогда у меня будут два DropDownLists, в которых значения должны публиковаться в Item_ID и Category_ID ... сначала категория, затем item

@Html.DropDownList("Categories", new SelectList((IQueryable<Inventario_Data.Models.Category>)ViewData["Categories"], "ID", "Name", ViewBag.Category_ID), "Select an Item Category", new { onchange = "window.location.href = '/Inventory/ItemByClinic/Categody_ID=' + this.value" })

Это то, что я не знаю, как это сделать ... как мне указать URL-адрес или как я должен отправить его, чтобы при отправке другой идентификатор не смешивался, и я мог получить свои идентификаторы

Как получить значения каждого DropDownList в ActionResult? как их отправлять?

ОТВЕТ

Я нашел ответ на этом сайте, просто хотел сообщить, что я сделал

http://kmsystems.squarespace.com/journal/2009/5/31/aspnet-mvc-cascading-dropdownlists.html

1 Ответ

2 голосов
/ 14 июля 2011

То, как вы описываете свою проблему, звучит так, будто вы пытаетесь сделать слишком много вещей одновременно.

Чтобы упростить объяснение, я собираюсь использовать вариант использования поиска по стране / штату.(Когда я выбираю «Страна», выпадающий список «Состояние» заполняется.)

У вас есть 4 элемента:

  1. Начальная загрузка формы (страна не выбрана, штат не выбран)
  2. Страна выбрана, штат заполнен
  3. Страна выбрана, штат выбран
  4. Обработка ошибок (недопустимая комбинация страны и штата)

Когда я сталкиваюсьэто, я обрабатываю шаги 1 и 3 в виде, подобном вашему примеру.

Так вы застряли на шаге 2?Что вы имеете в виду, когда говорите «как мне указать URL-адрес или как его отправить»?

Для меня я рассмотрю шаг 2, создав контроллер javascript и используя jquery для отправки и возврата объектов jsonсрабатывает при выборе раскрывающегося списка "Страна".

Мне показались очень полезными примеры MVC Music Store и Nerd Dinner .

Если вам нужен пример json / jquery, посмотрите корзину покупок в примере The Music Store.

...