Search code examples
asp.net-mvc-3asp.net-mvc-3-areas

dropDownList doesn't show real data


i have added the model in my view:

    @model Tuple<List<EshopTheme.Areas.Administrators.Models.ThemeGroupsModel>,
                      EshopTheme.Areas.Administrators.Models.AdminModel,
                      EshopTheme.Areas.Administrators.Models.ThemesModel> 

in my Controller i have added this action:

   public ActionResult AddTheme()
    {
        AdminSrv adminService = new AdminSrv();
        AdminModel adminModel = new AdminModel();
        ThemesModel themeModel = new ThemesModel();
        Tuple<List<ThemeGroupsModel>, AdminModel, ThemesModel> tuple =
            new Tuple<List<ThemeGroupsModel>, AdminModel, ThemesModel>
                (adminService.getAllThemeGroupByAdmin(), adminModel, themeModel);
        return View(tuple);
    }

i have used this DropDownListFor :

    @Html.DropDownListFor(x => x.Item1, new SelectList(Model.Item1))

but, DropDownListFor , shows the list of:

    EshopTheme.Areas.Administrators.Models.ThemeGroupsModel
    EshopTheme.Areas.Administrators.Models.ThemeGroupsModel
    EshopTheme.Areas.Administrators.Models.ThemeGroupsModel

why?????????????

this is my getAllThemeGroupByAdmin() code:

  public List<ThemeGroupsModel> getAllThemeGroupByAdmin()
    {
        List<ThemeGroupsModel> ThemeGr = new List<ThemeGroupsModel>();
        ThemeGroupsModel ThemeGrTemp;
        using (var context = new EShopThemeDBEntities(idbconnection.ConnStr))
        {
            var ThemeGroupList = (from o in context.ThemeGroups
                                  select o).ToList();

            foreach (var item in ThemeGroupList)
            {
                ThemeGrTemp = new ThemeGroupsModel();
                ThemeGrTemp.ThemeGroupName = item.ThemeGroupName;
                ThemeGrTemp.ThemeGroupId = item.ThemeGroupID;
                ThemeGr.Add(ThemeGrTemp);
            }
        }
        return ThemeGr;
    }

Solution

  • You should use Text and Value property;

    SelectList selectList = new SelectList(selectListItems, "Value", "Text");