Sep*_*ani 2 c# asp.net asp.net-mvc drop-down-menu
我有一个由创建支架生成的下拉列表,该列表显示了数据库中客户端的名字。
视图看起来像这样
<div class="form-horizontal">
<h4>ProgramClientTbl</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.ClientId, "ClientId", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ClientId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.ClientId, "", new { @class = "text-danger" })
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
控制器看起来像这样
public ActionResult Create()
{
ViewBag.ClientId = new SelectList(db.ClientsTbls, "Id", "FirstName");
ViewBag.ProgramId = new SelectList(db.ProgramTbls, "Id", "Program");
return View();
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以将“ LastName”添加到下拉列表中,以便显示多个字段?
小智 5
我知道这是一个古老的问题,但是我遇到了同样的问题,并在最终自己弄清楚之前找到了此页面。
这是正确的答案:
控制器:
var clients = db.ClientsTbls
.Select(s => new
{
Text = s.FirstName + " " + s.LastName,
Value = s.clientId
})
.ToList();
ViewBag.ClientsList = new SelectList(clients, "Value", "Text");
Run Code Online (Sandbox Code Playgroud)
视图:
@Html.DropDownListFor(model => model.ClientID, (SelectList)ViewBag.ClientsList, new { @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)