0

私の行動は:

[HttpPost]
public ViewResult SearchPost(FormCollection frm)
{

    IList <post> p =db.posts.Include("user").ToList();


    if (Request.Form["area"] != null)          
    {
        if ((p!=null) && (p.Any()))

        {

            p =p.Where(a=>a.area==Request.Form["area"]).ToList();     

        }
   }           
    if (Request.Form["floor"] != null)          
    {              
        if ((p!=null) && (p.Any()))

        {
            p = p.Where(a => a.floor ==   
           Request.Form["floor"]).ToList();                              
        }
    }            
    if (Request.Form["garage"] != null)          
    {
        if ((p!=null) && (p.Any()))

        {
            p = p.Where(a => a.garage ==   
            Request.Form["garage"]).ToList();                                    
        }
    }  


    return View(p);
}

エラーは表示されていません。ただし、常に null を返します。フィルタリングされた投稿オブジェクト、またはフィルタリングなしのすべての投稿を返す必要があります。何か問題ある ??私はそれを見つけることができません。

4

1 に答える 1

2

あなたが扱っている型の完全なシグネチャはわかりませんが、おそらく次のコードを試して、より良い結果が得られるかどうかを確認してください。

[HttpPost]
public ViewResult SearchPost(FormCollection frm)
{
    var area = Request.Form["area"];
    var floor = Request.Form["floor"];
    var garage = Request.Form["garage"];

    return View(db.posts.Include("user")
        .Where(a => area == null || a.area == area)
        .Where(a => floor == null || a.floor == floor)
        .Where(a => garage == null || a.garage == garage).ToList());
}

(これは基本的に、デバッグに役立つ可能性のある単一のクエリにコードを書き直したものです。)

于 2012-05-07T04:03:26.420 に答える