0

私は最初の ASP.net MVC アプリに取り組んでいます。このアプリでは、Simple および Advanced の検索を入力する必要があります。

簡易検索 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 でない 場合(つまり、ユーザーが何かを入力したことを意味します)
原則モデル検索リクエストから結果をフィルタリングします。

だから私は正しいかどうか疑問に思っていますか?また、この行には赤い下線が引かれています:

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 に答える