2012-08-16 88 views
0

在我的MVC3應用程序中,我在視圖中有兩個下拉菜單「Category」和「SubCategory」,它們來自兩個不同的模型。視圖本身屬於第三種模式。我正在使用NHibernate for ORM。不同模型的級聯下拉

我的問題是如何級聯兩個下拉。子類別下拉菜單應顯示值取決於在類別下拉列表中選擇的值。 「類別」下拉菜單從「類別」模型中檢索值,「子類別」下拉菜單從「子類別」模型中檢索值。這兩個下拉列表顯示在屬於另一個模型「費用」的視圖中。

請查看此段代碼以獲取更多信息。支出觀點有以下下拉菜單:

@using (Html.BeginForm()) { 
<div class="editor-field"> 
      @Html.DropDownListFor(model => model.CategoryId.CategoryName, new SelectList(new MyExpense.Persistence.Repositories.CategoriesRepository().GetCategoryName())) 
      @Html.ValidationMessageFor(model => model.CategoryId.CategoryName) 
</div> 
<div class="editor-field"> 
     @Html.DropDownListFor(model => model.SubCategoryId.SubCategoryName, new SelectList(new MyExpense.Persistence.Repositories.SubCategoriesRepository().GetSubCategoryName())) 
     @Html.ValidationMessageFor(model => model.SubCategoryId.SubCategoryName) 
</div> 
} 

CategoriesRepository和SubCategoriesRepository是類包含從數據庫中檢索類別和SuCategories方法。

任何幫助,這是非常感謝。

回答

0

就個人而言,我只會填充第一個下拉列表,然後在選擇更改時執行AJAX請求 - 請求所選類別標識的子類別選項。從你回來的結果你可以重建子類別列表。退房this post

+0

感謝您的回覆!我確實嘗試了建議的解決方案,但SubCategory下拉列表爲空,不顯示任何內容。當我從類別dropwdown中選擇值時,它會引發一個異常,因爲「ViewData未提供關鍵的CategoryId.CategoryName」。我在Expense Conyroller中做了popualte ViewData,作爲, ViewData [「CatgeoryId.CategoryName」] = CategoryClass.GetAllCategories(); 有關這個的任何想法? – shw 2012-08-20 09:19:05

+0

你可以發佈你的點擊處理程序的類別下拉列表的JS,我會看看 – MiiisterJim 2012-08-21 16:31:04