Asp.net mvc asp.net mvc中的按Id筛选

Asp.net mvc asp.net mvc中的按Id筛选,asp.net-mvc,filter,Asp.net Mvc,Filter,当我使用where条件时,过滤数据会出现问题,数据不会显示在表或页面中 我有三个表格组,子组,学生 首先我选择组,然后我选择子组,并从子组学生表中显示 这是我的控制器: public ActionResult索引(int?id) { var students=db.students.AsQueryable() .包括(s=>s.组) .包括(s=>s.子组) .包括(s=>s.时间表) 。包括(s=>s.教师); 如果(id!=null) { 学生 。其中(s=>s.SubgroupId==id

当我使用where条件时,过滤数据会出现问题,数据不会显示在表或页面中

我有三个表格子组学生

首先我选择组,然后我选择子组,并从子组学生表中显示

这是我的控制器:

public ActionResult索引(int?id)
{
var students=db.students.AsQueryable()
.包括(s=>s.组)
.包括(s=>s.子组)
.包括(s=>s.时间表)
。包括(s=>s.教师);
如果(id!=null)
{
学生
。其中(s=>s.SubgroupId==id)。其中(s=>s.GroupId==id);
}
ViewBag.result=学生;
返回视图(students.ToList());
}
集体课:

公共类组
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
子组类别:

公共类子组
{
公共int Id{get;set;}
公共字符串名称{get;set;}
[ForeignKey(“GroupId”)]
公共虚拟组{get;set;}
public int?GroupId{get;set;}
}
学生班:

公共班级学生
{
公共int Id{get;set;}
公共字符串名称{get;set;}
[ForeignKey(“GroupId”)]
公共虚拟组组{get;set;}
public int?GroupId{get;set;}
[外键(“子ID”)]
公共虚拟子组子组{get;set;}
公共int?子组id{get;set;}
}
当我删除groupId时,会显示数据,但不会过滤组数据,因此会显示所有组

我不知道是什么错误


谢谢

您正在筛选两次,请尝试筛选一次:

if(id!=null)
{
学生
。其中(s=>s.subgroup id==id&&s.GroupId==id);
}

此外,如果在您的模型/应用程序中,
学生可以属于一个组和一个子组,其组与学生组不同(这很可能)然后您需要从
学生
实体中删除
外键/属性,因为您始终可以从
子组
属性中访问

如果要过滤两次,请尝试过滤一次:

if(id!=null)
{
学生
。其中(s=>s.subgroup id==id&&s.GroupId==id);
}

此外,如果在您的模型/应用程序中,
学生可以属于一个组和一个子组,其组与学生组不同(这很可能)然后您需要从
学生
实体中删除
外键/属性,因为您始终可以从
子组
属性中访问

id
参数,它是一个组id还是一个子组id?对于这两者都是错误的?您会包括您的模型类吗?我现在可以添加检查
id
参数,它是一个组id还是一个子组id?对于这两个都是错误的?您会包括您的模型类吗?我添加可以立即检查我得到此错误名称“s”在当前上下文错误语法错误中不存在,“@programmer check againI得到此错误名称“s”在当前上下文错误语法错误中不存在,”,“@程序员再次检查