[英]Fill Dropdownlist with values from sql database in MVC4
I have a table in my database which I select all Mem_NA to fill it in my dropdownlist in my view. 我的数据库中有一个表,我选择了所有Mem_NA并将其填充到视图中的下拉列表中。
I can't understand how can I fill the values in there? 我不明白如何在其中填写值? Someone can give me a hand? 有人可以帮我吗?
My Model 我的模特
public class MemberBasicData
{
public int Id { get; set; }
public string Mem_NA { get; set; }
public string Mem_Occ { get; set; }
}
public List<MemberBasicData> GetAllMembers()
{
DateTime today = DateTime.Now;
List<MemberBasicData> mbd = new List<MemberBasicData>();
using (SqlConnection con = new SqlConnection(Config.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("SELECT Id,Mem_NA,Mem_Occ FROM Mem_Basic", con))
{
try
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MemberBasicData mb = new MemberBasicData();
mb.Id = (int)reader["Id"];
mb.Mem_NA = (string)reader["Mem_NA"];
mb.Mem_Occ =(string)reader["Mem_Occ"];
mbd.Add(mb);
}
}
catch (Exception e)
{
throw e;
}
finally
{
if (con.State == System.Data.ConnectionState.Open)
{
con.Close();
}
}
return mbd;
}
}
}
GetAllMembers()
function is an IEnumerable function which I was used for get all details of members. GetAllMembers()
函数是一个IEnumerable函数,用于获取成员的所有详细信息。 Can I use the same function for filling the dropdown list? 我可以使用相同的功能来填充下拉列表吗?
My controller 我的控制器
public ActionResult Register()
{
return View(new Member());
}
And View 和视图
@Html.DropDownListFor("-- Select --", new SelectList("")) <=== ???? i dont know
Model 模型
public MemberModel
{
List<SelectListItem> MemberList { get; set; }
}
Controller 调节器
public ActionResult Register()
{
MemberModel model = new MemberModel();
model.MemberList = GetAllMembers()
.Select(m => new SelectListItem
{
Text = string.format("{0}, {1}", m.Mem_NA, m.Mem_Occ),
Value = m.Id
});
SelectListItem default = new SelectListItem
{
Text = "-- SELECT --",
Value = 0
};
model.MemberList.Insert(0, default);
return View(model);
}
View 视图
@Html.DropDownList(Model.MemberList);
UPDATE: This version adds a default entry to the beginning of the list. 更新:此版本将默认条目添加到列表的开头。
@Html.DropDownListFor
gets an IEnumerable
of SelectListItem
. @Html.DropDownListFor
获得一个SelectListItem
的IEnumerable
。 But instead, you want to use a list of MemberBasicData
. 但是,您想使用MemberBasicData
的列表。 You must convert your MemberBasicData
list to SelectListItem
and pass it to the @Html.DropDownListFo
r instead of a list of MemberBasicData
. 您必须将MemberBasicData
列表转换为SelectListItem
然后将其传递给@Html.DropDownListFo
r而不是MemberBasicData
列表。 For passing related data to the Views as Sirwan
pointed, you can use ViewBag
or ViewData
. 要将相关数据传递给Sirwan
指出的View,可以使用ViewBag
或ViewData
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.