【发布时间】:2018-01-30 19:35:37
【问题描述】:
我相信我已经正确绑定了我的数据,但我似乎无法让每个 SelectListItem 的文本属性正确显示。
我的模特:
public class Licenses
{
public SelectList LicenseNames { get; set; }
public string SelectedLicenseName { get; set; }
}
控制器:
[HttpGet]
public ActionResult License()
{
try
{
DataTable LicsTable = BW.SQLServer.Table("GetLicenses", ConfigurationManager.ConnectionStrings["ProfressionalActivitiesConnection"].ToString());
ProfessionalActivities.Models.Licenses model = new ProfessionalActivities.Models.Licenses();
model.LicenseNames = new SelectList(LicsTable.AsEnumerable().Select(row =>
new SelectListItem
{
Value = row["Description"].ToString(),
Text = "test"
}));
return PartialView("_AddLicense", model);
}
catch (Exception ex)
{
var t = ex;
return PartialView("_AddLicense");
}
}
查看:
@Html.DropDownList("LicenseNames", new SelectList(Model.LicenseNames, "Value", "Text", Model.LicenseNames.SelectedValue), new { htmlAttributes = new { @class = "form-control focusMe" } })
【问题讨论】:
-
除了Shyju的回答,注意
DropDownList()的第二个参数是IEnumerable<SelectListItem>。您可以使用new SelectListItem { Value = row["Description"].ToString(), Text = "test"})创建它,这就是您所需要的。使用new SelectList()(您忘记设置Text和Value属性)在控制器中创建第二个相同的,然后在视图中创建第三个相同的只是毫无意义的额外开销。
标签: c# asp.net asp.net-mvc html-select