我相信我已經正確綁定了我的數據,但我似乎無法讓每個SelectListItem的文本屬性正確顯示。爲什麼我在我的DropDownList中獲得「System.Web.Mvc.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'。你可以用'new SelectListItem {Value = row [「Description」]創建它。ToString(),Text =「test」})'這就是你所需要的。使用'new SelectList()'(在那裏你忘記設置Text和Value的屬性)在控制器中創建第二個相同的控件,然後在視圖中創建第三個相同的控件是沒有意義的額外開銷。 –