You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# .NET Core的SelectList中显示姓氏+姓名两列值?

解决方案

要在下拉选择列表中同时显示客户的姓(surname)和名(name),你需要将这两个字段拼接成一个完整的显示文本后传递给SelectList,以下是两种常用实现方法:

方法一:通过匿名对象直接拼接

在查询客户数据时,用LINQ的Select构造包含拼接后姓名的匿名对象,再基于此创建SelectList:

public IActionResult OnGet()
{
    // 按需调整姓和名的顺序
    var customerOptions = _context.Customers.Select(c => new 
    {
        c.Id,
        FullName = $"{c.surname} {c.name}"
    });
    
    ViewData["CustomerId"] = new SelectList(customerOptions, "Id", "FullName");
    
    return Page();
}

方法二:扩展实体类添加只读属性

如果允许修改Customer实体类,可以新增一个返回完整姓名的只读属性,后续直接复用该属性:

1. 修改Customer实体类

public class Customer
{
    public int Id { get; set; }
    public string name { get; set; }
    public string surname { get; set; }
    public int age { get; set; }

    // 自动拼接姓和名的只读属性
    public string FullName => $"{surname} {name}";
}

2. 更新后端代码

public IActionResult OnGet()
{
    ViewData["CustomerId"] = new SelectList(_context.Customers, "Id", "FullName");
    
    return Page();
}

关键注意点

你当前后端代码里的"LastName"和"FirstName"是错误的字段名,必须替换为表结构对应的surname和name,或上述方案中的拼接字段/属性名;前端代码无需修改,asp-items会自动渲染显示文本与对应值。

内容的提问来源于stack exchange,提问作者Fillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:32:42