私はデータを正しくバインドしていると信じていますが、各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" } })
は、DropDownListの 'の第二パラメータは()' 'のIEnumerable'であることに注意してください。あなたはそれを 'new SelectListItem {Value = row [" Description "]。ToString()、Text =" test "})'を使って作成します。 'New SelectList()'(ここで 'Text'と' Value'プロパティを設定するのを忘れた)を使って2番目のものを作成し、3番目のものをビューに作成するのは無意味な余分なオーバーヘッドです。 –