0

我想将数据库中的数据绑定到 DropDownList ,我尝试了以下方法,但数据未绑定到下拉列表,谁能告诉我我在哪里做错了

这是我的控制器

         [AcceptVerbs(HttpVerbs.Get)]
         public ActionResult AddNew()
          {
        ViewBag.RoleName = new SelectList(GetRoles(), "RoleID", "RoleName");
        return View();
        }
        public List<SelectListItem> GetRoles()
       {
        var roles = new List<SelectListItem>();
        SqlConnection conn = new SqlConnection("Data Source=LMIT-0039;Initial Catalog=BugTracker;Integrated Security=True");
        SqlCommand Cmd = new SqlCommand("Select GroupId,EmplopyeeRole from  EmployeeGroup", conn);
        conn.Open();
        SqlDataAdapter da = new SqlDataAdapter(Cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);         
            for (int i = 0; i <= ds.Tables[0].Rows.Count-1; i++)
            {
                var model = new ResourceModel();
                model.RoleId = Convert.ToInt16(ds.Tables[0].Rows[i]["GroupId"]);
                model.RoleName = ds.Tables[0].Rows[i]["EmplopyeeRole"].ToString();
            }          
        conn.Close();
        return roles;
    }

这是我的模型

              public class ResourceModel
{
    public static List<ResourceModel> GetList { get; set; }
    public Int16 EmployeeId { get; set; }
    public string EmployeeName { get; set; }
    public string EmployeeEmailId { get; set;}
    public string GroupName { get; set; }
    public string EmployeePassword { get; set; }

    public static List<SelectListItem> GetRoles { get; set; }
    public int RoleId { get; set; }
    public string RoleName { get; set; }      

}

这是我的 aspxPage

    <%:Html.DropDownList("RoleName")%>

当我放一个断点并看到我在 GetRoles 方法中有数据时..谁能告诉我我在哪里做错了

4

2 回答 2

0

我想问题是您在模型中有一个名称为属性的属性,RoleName并且您在ViewBag.

所以在使用<%:Html.DropDownList("RoleName")%>的时候会有一种混乱。

我建议ViewBag.RoleName换成类似的东西ViewBag.Roles然后尝试,

<%:Html.DropDownList("Roles")%>

于 2012-07-18T10:25:54.003 回答
0

在 for 循环中,使用roles.add(new SelectList{.Value=i, .Text=i});字段而不是i

在视图页面使用<%: Html.DropDownList("RoleName", New SelectList(youClass.GetRoles, "Value", "Text"))%>和youClass导入页面。

linq 和 foreach 也好用~和Develop作为一个合适的扩展方式。

于 2012-07-18T10:12:00.783 回答