2011-01-26 10 views
1

私はC#Asp.Net MVCアプリケーションにいくつかの関連するドロップダウンを持つスクリーンを構築しています。たとえば、「Category」を選択してから2番目のドロップ選択したカテゴリの関連するすべてのサブカテゴリが表示されます。関連ドロップダウンを持つAsp.Net MVCモデル

モデルにはリストが含まれていて、カテゴリドロップダウンを作成してから、最初は空のリストになります。カテゴリの選択では、私はポストバックを行う必要があります、選択されたカテゴリのIDを返信し、リスト<>サブカテゴリを設定してから、サブカテゴリのドロップダウンを作成しますか?

誰かが私のモデルの設計を手伝ってくれることを願っています。モデルには、編集中の項目の非リスト関連データもかなり含まれています。モデルには「CategorySelectedId」が必要なので、選択したものが分かっていると思いますか?

答えて

1

最も良い方法は、このためにAJAXを使用することです。 changeイベントを最初の選択ボックスにフックする必要があります。変更したら、選択した値のAJAXリクエストをActionにします。アクションはJSONリストを返します。JSONリストは解析され、次のselect boxに入れられます。

更新

JSONを返すアクションのためのモデルは本当に匿名型、またはSelectListItemIEnumerableすることができます。 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 - 私はドロップmoutのための苦境を持っているモデルも必要でしょう、そうですか?つまり、項目のリストとその値は、ドロップダウンに移入するのでしょうか? – Craig

関連する問題