下拉列表中的Asp.net MVC多个字段

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)