我正在开发我的第一个ASP.net MVC应用程序,在这个应用程序中我得到了简单和高级搜索类型:
简单搜索olny dd,df和gov是必需的
高级搜索用户有更多选择,即使在高级搜索中,dd,df和gov也是必填字段。
所以这是我的搜索行动
[HttpPost]
public ActionResult search(LogModel.Search soption)
{
// this part will not change the same in simple and advenced
DateTime dd1 = soption.dd;
DateTime df1 = soption.df;
var model = (from p in entity.vehicule
where p.agence.idgov == soption.gov
where !p.indisponible.Any(b => (dd1 >= b.Dd && dd1 <= b.Df) || (df1 >= b.Dd && df1 <= b.Df))
where !p.indisponible.Any(c => (c.Dd >= dd1 && c.Dd <= df1) || (c.Df >= dd1 && c.Df <= df1))
select p).ToList();
// here i want to add my filtring action advanced search
if (!soption.mark)
model = model.Any(b => b.idmarque == soption.mark );
return View(model);
}
简单的搜索模式工作得很好,但现在我正在尝试实现高级搜索,这就是我的想法:
如果 model.myVar不为null(表示用户已经下了点东西)
然后我将根据我的pricinple模型搜索请求过滤一些结果。
所以,如果我做对了,我会发声吗?此行也用红色加下划线:
model = model.Any(b => b.idmarque == soption.mark );
无法将类型bool转换为Systeme.collection.generic.list
答案 0 :(得分:1)
再次使用where子句
if (!soption.mark)
model = from x in model
where (b => b.idmarque == soption.mark )
select x
答案 1 :(得分:0)
模型的Any()方法返回bool。你可以尝试select()