public List <HeritageProject> GetFilterSearchProjectList(HeritageProject filter, int pages) { var filterBson = new BsonDocument(); //输入的筛选条件可能是不全的 //如果简单的使用扩展方法ToBson,或出现筛选字段为null,会没有结果 //过滤掉所有为null的字段,将其转换为BsonDocument foreach (var filedName in typeof(HeritageProject).GetProperties()) { var filedValue = filedName.GetValue(filter); if (filedValue != null && filedValue.ToString().Length > 0) { filterBson.Add(filedName.Name.ToLower(), new BsonDocument { { "$regex", filedValue.ToString() }, { "$options", "i" } }); } } return(GetFilterSearchProjectList(filterBson, pages)); }
public ActionResult <List <HeritageProject> > SearchHeritageProject([FromQuery(Name = "num")] string num , [FromQuery(Name = "title")] string title , [FromQuery(Name = "type")] string type , [FromQuery(Name = "rx_time")] string rx_time , [FromQuery(Name = "cate")] string cate , [FromQuery(Name = "province")] string province , [FromQuery(Name = "unit")] string unit , [FromQuery(Name = "page")] int pages = 1 ) { HeritageProject filter = new HeritageProject(); filter.Num = num; filter.Title = title; filter.Rx_time = rx_time; filter.Cate = cate; filter.Province = province; filter.Unit = unit; return(_heritageProjectService.GetFilterSearchProjectList(filter, pages)); }