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

ASP.NET MVC中如何通过姓名获取所有同名Personel列表?

问题分析与解决

你的控制器查询逻辑是正确的,Where(p => p.Ad.Contains(personelAdi)).ToList()会筛选出所有姓名包含查询关键词的人员。当前只返回第一条匹配数据,问题大概率出在查询结果视图(PersonelAramaSonucu.cshtml)没有遍历整个结果集合,仅渲染了第一条数据。

修复步骤

1. 修改结果视图代码

确保PersonelAramaSonucu.cshtml正确遍历传入的List<Personel>集合,示例代码如下:

@model List<Personel>

@{
    ViewBag.Title = "Arama Sonuçları";
}

<h2>Personel Arama Sonuçları</h2>

@if (Model.Count == 0)
{
    <p>Hiçbir personel bulunamadı.</p>
}
else
{
    <div>
        @foreach (var personel in Model)
        {
            <div style="border:1px solid #eee; padding:10px; margin:10px 0;">
                <p>ID: @personel.Id</p>
                <p>Ad: @personel.Ad</p>
                <p>Soyad: @personel.Soyad</p>
                <p>TC Kimlik No: @personel.TcKimlikNo</p>
                <p>Doğum Tarihi: @personel.DogumTarihi.ToShortDateString()</p>
            </div>
        }
    </div>
}

2. 验证集合数据(可选)

如果视图修改后问题依旧,在控制器的PersonelAramaSonucu方法里加调试断点,确认aramaSonucundakiPersoneller的Count值是否为2(查询"Ali"时)。如果集合只有1条数据,检查静态列表_personeller是否在其他业务逻辑中被意外修改。

额外优化

  • 可以将查询改为不区分大小写的匹配,避免大小写差异导致漏查:
    var aramaSonucundakiPersoneller = _personeller
        .Where(p => p.Ad.IndexOf(personelAdi, StringComparison.OrdinalIgnoreCase) >= 0)
        .ToList();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:11:05