【问题标题】:Combine three values into one in a MVC dropdownlist?在 MVC 下拉列表中将三个值合二为一?
【发布时间】:2023-03-14 13:10:01
【问题描述】:

我正在尝试使用 linq2sql 将值 FirstName + LastName + Email 组合成一个值,用于 MVC 应用程序中的下拉列表。

我现在使用的代码仅适用于列表中的一个输出值:

<%= Html.DropDownList("SaleEmployeeId", new SelectList(ViewData["SaleEmployees"] as IEnumerable, "Id", "FirstName", Model.SaleEmployeeId), "-- Choose --", new { @class = "required" })%>

但我想结合“名字 + 姓氏 + 电子邮件”,其中“名字”在我的下拉列表中占有一席之地。

有人对此有解决方案吗?

【问题讨论】:

    标签: asp.net-mvc drop-down-menu html-select


    【解决方案1】:

    你可以试试这个(在你的控制器中):

    var values = _userRepository.FindAllUsers().Select(u => new { ID = u.UserName, Name = u.FirstName + " " + u.LastName + " " + u.EmailAddress});
    var userDropDown = new SelectList(values, "Id", "Name");
    

    然后将userDropDown放入viewbag/viewdata中,在你的视图中读取。

    【讨论】:

    • 这将起作用并填充我认为的下拉列表。但我使用带有视图模型的 EditorTemplate。因此,当我尝试用 userDropDown 填充 SaleEmployees 时出现错误:无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”
    • 如果将以下代码放入视图中会发生什么:&lt;%= Html.DropDownList("SaleEmployeeId", ViewData["userDropDown"] as SelectList) %&gt;
    • 是的,当我想创建一个新帖子时效果很好。但是,如果我想编辑帖子?然后,我希望自动选择创建帖子时的值。
    • 我通过设置 SaleEmployeeId 解决了这个问题: var userDropDown = new SelectList(values, "Id", "Name" SaleEmployeeId);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多