我正在尝试从数据库中选择要插入到下拉列表中的数据。我的问题是下拉列表没有显示任何内容,并且我没有收到任何错误。有人可以帮忙吗?
这是我的代码:
模型:
public int id { get; set; }
public string name{ get; set; }
public IEnumerable<SelectListItem> isto { get; set; }
public ListagemEmpresas()
{
isto = GetCompanies();
}
public SelectList GetCompanies()
{
var list = new List<SelectListItem>();
string connection = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var con = new SqlConnection(connection))
{
con.Open();
using (var command = new SqlCommand("SELECT * FROM Companieslist", con))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string id = reader[0] as string;
string name = reader[1] as string;
list.Add(new SelectListItem() { Text = name, Value = id });
}
}
con.Close();
}
return new SelectList(list, "Value", "Text");
}
public class DefaultConnection : DbContext
{
public DbSet<CompanyList> abc{ get; set; }
}
控制器:
var dba = new DefaultConnection();
var query = dba.abc.Select(c => new SelectListItem
{
Value = SqlFunctions.StringConvert((double)c.id),
Text = c.name,
});
var model = new CompanyList
{
isto = query.AsEnumerable()
};
return View(model);
看法:
@model MyProject.Models.CompanyList
@Html.DropDownListFor(m => m.name, Model.isto, "--Select One--")
IEnumerable<SelectListItem>
如下所示在您的控制器中定义您的。您需要DbSet<CompanyList>
先将转换为List,然后才能使用该ToString()
方法。
var query = dba.abc.ToList().Select(c => new SelectListItem
{
Value = c.id.ToString(),
Text = c.name
});
然后,在您的View中,您将拥有(DropDownList返回所选项目的值,而不是其Text):
@model MyProject.Models.CompanyList
@Html.DropDownListFor(m => m.id, Model.isto, "--Select One--")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句