0

我正在开发我的第一个 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 不为空(这意味着用户放了一些东西)
,那么我将从我的原则模型搜索请求中过滤一些结果。

所以我想知道我是否正确?这条线也用红色下划线:

model = model.Any(b => b.idmarque == soption.mark );

无法将 bool 类型转换为 Systeme.collection.generic.list

4

2 回答 2

1

只需再次使用 where 子句

if (!soption.mark) 
            model = from x in model
                    where (b => b.idmarque == soption.mark )
                    select x
于 2012-05-03T18:19:38.810 回答
0

模型的 Any() 方法返回 bool。你可以试试 select()

于 2012-05-03T14:24:44.163 回答