使用MVC中的多个DropDown列表进行过滤

时间:2015-07-28 12:06:19

标签: asp.net-mvc-4 drop-down-menu linq-to-sql

我正在开发3层架构项目 我有多个DropDown列表来过滤使用LINQ从数据库中提取的数据。

现在我需要一种方法来过滤这些下拉列表,当我在任何下拉列表中选择一个项目时,它正在过滤,当我从两个下拉列表中选择要按这两个选项进行过滤等等...

我像这样使用linq:

var doctors = from d in db.Doctors
              where d.CityID == id
              && d.HasSecretary == hasSec
              && d.OldSystem == oldSys
              && d.MetDoctor == metDoc
              && d.PriceProblem == priceProb
              && d.EasyToConvince == easyToCon
              && d.ComputerSavvy == comSav
              && d.Sold == sold
              && d.NotInterested == notIntr
              && d.FollowUp == followUp
              && d.NewClinic == newClin
              && d.RequestedADemo == reqDemo
              select d;

只有当我选择所有下拉列表时才会过滤,而不是单独过滤。

请帮助:)

1 个答案:

答案 0 :(得分:1)

你必须做条件where where子句,例如

var doctors = from d in db.Doctors;

if (id != null)
  doctors = doctors.Where(d => d.CityID == id);
if (hasSec)
  doctors = doctors.Where(d => d.HasSecretary == hasSec);

// other if statements

// results
var results = doctors.ToList();