创建一个视图(索引)来显示特定 ID 的记录列表?

Create a view (index) to show a list of records for a specific id?

各位早安,

我在我的 mvc 项目中使用 c#。我有一个列出家庭成员的索引视图。

这很好用,可以提取数据库中的所有记录。

 public ActionResult Index()
    {
        List<Household> houseRecords = db.Households.ToList();

        return View(houseRecords);
    }

我创建了另一个名为 ListMembers() 的列表视图页面,此列表基于家庭成员,因此我希望此视图提取特定于我创建的推荐人 (ClientId) 的记录。

我认为我可以在我的列表代码中添加一个 where 子句并将其基于 ClientId,但我不能 100% 确定这会起作用。

 List<Household> houseRecords = db.Households.ToList().Where(x => x.ClientId = x.id);

谁能给我指出正确的方向?

问候 贝蒂

假设您想根据通过 URL 传入的 ID 过滤您的列表,您可以向您的操作方法添加一个参数并使用它来过滤。

请注意,根据问题中的示例,您应该在 IQueryable 上执行过滤逻辑,而不是在调用 ToList() 之后执行,以防止所有记录都加载到内存中。

// <root>/<controller>/ListMembers/123 (using default route)
public ActionResult ListMembers(int clientId)
{
    var houseRecords = db.Households.Where(x => x.ClientId == clientId).ToList();
    return View(houseRecords);
}

它会像我相信的那样工作,但你可以这样做

 var  houseRecords = db.Households.Where(x => x.ClientId = x.id).ToList(); 

我认为最好在获得最终列表之前先做 where

我不知道你为什么这么说"you dont think it will work"? 我在你提到的内容中看到的问题是
1. List<Household> houseRecords = db.Households.ToList().Where(x => x.ClientId = x.id); 应该改为

List<Household> houseRecords = db.Households.Where(x => x.ClientId = x.id).ToList();

注意末尾的 .ToList

  1. 因为您正在创建一个名为

    的操作方法

    ListMembers()

您应该知道如何创建一个接受客户端 ID 然后在查询中使用它的操作方法。所以像这样的东西 publicActionResult ListMembers(int clientId) { var houseRecords = db.Households.Where(x => x.ClientId = clientId).ToList(); return查看(房屋记录); } 然后根据你的路线,你可以像这样调用方法

http://<BaseUrl>/ListMembers?clientId=123