创建一个视图(索引)来显示特定 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
因为您正在创建一个名为
的操作方法
ListMembers()
您应该知道如何创建一个接受客户端 ID 然后在查询中使用它的操作方法。所以像这样的东西
publicActionResult ListMembers(int clientId)
{
var houseRecords = db.Households.Where(x => x.ClientId = clientId).ToList();
return查看(房屋记录);
}
然后根据你的路线,你可以像这样调用方法
http://<BaseUrl>/ListMembers?clientId=123
各位早安,
我在我的 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
因为您正在创建一个名为
的操作方法ListMembers()
您应该知道如何创建一个接受客户端 ID 然后在查询中使用它的操作方法。所以像这样的东西 publicActionResult ListMembers(int clientId) { var houseRecords = db.Households.Where(x => x.ClientId = clientId).ToList(); return查看(房屋记录); } 然后根据你的路线,你可以像这样调用方法
http://<BaseUrl>/ListMembers?clientId=123