操作始终返回 null

本文关键字:null 返回 操作 | 更新日期: 2023-09-27 18:33:23

我的操作是:

[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。 它应该返回过滤的帖子对象或仅返回所有帖子而不进行过滤。 有什么问题吗? 我找不到它.

操作始终返回 null

我不知道

您正在处理的类型的完整签名,但也许可以尝试以下代码,看看您是否得到更好的结果:

[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());
}

(这实质上是将代码重写为单个查询,这可能有助于您进行调试。