我想将数据从DB绑定到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方法中的数据时......任何人都告诉我我在哪里做错了
答案 0 :(得分:0)
在for循环中,使用roles.add(new SelectList{.Value=i, .Text=i});
字段而不是i
在视图页面中使用<%: Html.DropDownList("RoleName", New SelectList(youClass.GetRoles, "Value", "Text"))%>
和youClass导入页面。
linq和foreach也很容易使用〜和Develop作为一种合适的扩展方法。
答案 1 :(得分:0)
我想问题是你在模型中有一个名为RoleName
的属性,而且你在ViewBag
中也有。
因此,当您使用<%:Html.DropDownList("RoleName")%>
时,会出现一种混淆。
我建议将ViewBag.RoleName
更改为ViewBag.Roles
,然后尝试,
<%:Html.DropDownList("Roles")%>