3

カスケードドロップダウンリストを正確に作成する方法がわかりません

私のシナリオは次のとおりです。

カテゴリにはアイテムがあり、アイテムには施設に応じた数量があります

2つのDropDownListを作成します。1つはカテゴリを選択し、次の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();
    }

次に、Item_IDとCategory_IDに値を投稿する2つのDropDownListがあります...最初のカテゴリ、次にアイテム

@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をどのように入力するか、どのように送信すればよいので、他のIDを送信するときに混同せず、IDを受信できます

ActionResultで各DropDownListの値を受け取るにはどうすればよいですか?それらはどのように送られるべきですか?

答え

私はこのウェブサイトから答えを見つけました、ただ私がしたことを知らせたかっただけです

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

4

1 に答える 1

2

問題を説明する方法は、一度に多くのことをやろうとしているように聞こえます。

説明を簡単にするために、国/州のルックアップのユースケースを使用します。([国]を選択すると、[州]ドロップダウンが表示されます。)

4つの要素があります:

  1. 初期フォームの読み込み(国なし、州が選択されていません)
  2. 選択された国、人口の多い州
  3. 国を選択、州を選択
  4. エラー処理(無効な国と州の組み合わせ)

これに出くわしたとき、私はあなたの例と同様のビューでステップ1と3を処理します。

それで、あなたはステップ2で立ち往生していますか?「URLをどのように入力すればよいか、どのように送信すればよいか」とはどういう意味ですか。

私の場合は、JavaScriptコントローラーを作成してステップ2に対処し、jqueryを使用して、[国]ドロップダウンボックスが選択されたときにトリガーされるjsonオブジェクトを投稿して返します。

MVCミュージックストアオタクディナーの例は非常に役に立ちました。

json / jqueryの例が必要な場合は、ミュージックストアの例のショッピングカートを参照してください。

于 2011-07-14T05:24:53.887 に答える