Binden von Daten an DropDownList in MVC3?
Will ich binden, Daten aus DB in DropDownList ,ich hatte versucht Sie die folgende Methode, aber die Daten werden nicht verknüpft, um die dropdown-kann irgend jemand sagen, wo ich falsch mache
dies ist mein controller
[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;
}
dies ist mein Modell
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; }
}
dies ist mein aspxPage
<%:Html.DropDownList("RoleName")%>
wenn ich einen Haltepunkt und sehe, dass ich die Daten in GetRoles Methode..kann einer mir sagen, wo ich falsch mache
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke das problem ist, Sie haben eine Eigenschaft im Modell mit dem Namen
RoleName
und auch Sie haben es in derViewBag
.So, wenn Sie
<%:Html.DropDownList("RoleName")%>
es ist eine Art von Verwirrung.Ich würde vorschlagen, ändern
ViewBag.RoleName
in so etwas wieViewBag.Roles
und dann versuchen,<%:Html.DropDownList("Roles")%>
in der for-Schleife, verwenden Sie
roles.add(new SelectList{.Value=i, .Text=i});
Felder anstelle voni
in view Seite verwenden
<%: Html.DropDownList("RoleName", New SelectList(youClass.GetRoles, "Value", "Text"))%>
und youClass Seite importieren.linq und foreach zu verwenden ist auch einfach~ und Entwickeln eine passende Erweiterung Methode.