2012-10-15 42 views
0

我想添加另一個下拉列表。下面的代碼適用於一個下拉菜單,但是如何爲分類添加一個?如何在MVC3的ActionResult中添加多個Dropdownlist

public ActionResult Create() 
     { 
      var ddl = new Users(); 
      ddl.DropDowns = userRepository.Getddl("Departments").Select(c => new SelectListItem 
                    { 
                     Value = c.DropdownID.ToString(), 
                     Text = c.DropdownText 
                    }); 


      ViewData["ListofProfiles"] = new SelectList(ListofProfiles, "Value", "Text"); 

      return View(ddl); 
     } 

回答

1

儘量避免使用ViewData的方法。切換到強類型的方式。另一個屬性添加到您的視圖模型來拎在GET動作多了一個下拉項

public class User 
{ 
    public int SelectedCountry { set;get;} 
    public int SelectedProfile { set;get;} 
    public List<SelectListItem> Countries {set;get;} 
    public List<SelectListItem> Profiles {set;get;} 

    public User() 
    { 
    Countries =new List<SelectListItem>(); 
    Profiles =new List<SelectListItem>(); 
    } 
} 

現在設置的集合

public ActionResult Create() 
{ 
    var vm=new User(); 
    vm.Countries=GetCountryItems(); 
    vm.Profiles=GetProfileItems(); 
    return View(vm); 
} 

GetCountryItemsGetProfileItems 2種方法返回一個列表的SelectListItem對象爲國家和個人資料從數據庫。

不要讓你的控制器FAT。只要保持簡單和乾淨。將您從存儲庫獲取數據的代碼移走到不同的層。易於閱讀和維護:)

而在你的強類型的視圖,

@mode User 
@using(Html.BeginForm()) 
{ 
    @Html.DropDownListFor(m => m.SelectedCountry, 
        new SelectList(Model.Countries, "Value", "Text"), "Select") 
    @Html.DropDownListFor(m => m.SelectedProfile, 
        new SelectList(Model.Profiles, "Value", "Text"), "Select") 
<input type="submit" /> 
} 
+0

您好再次Shyju。很高興知道你在這個問題上得到了回報。 –

+0

@StoneTempleAviators:不客氣。 :) 很高興我能幫上忙。 :) – Shyju

+0

我檢查了你的網站。我期待看到您的CRM解決方案。 –