如何在此操作中使用?

问题描述:

如果没有结果,如何为此方法编写if/else语句?如何在此操作中使用?

public ActionResult Search(string q) 
{ 
    Helpers Helpers = new Helpers(); 
    var restaurants = Helpers.getRestaurant(q); 

    return View("_RestaurantSearchResults", restaurants); 
}  

助手类包含:

public class Helpers 
{ 
    FoodReviewContext _db = new FoodReviewContext(); 

    public static IQueryable<Restaurant> getRestaurant(string q) 
    { 
     var restaurents = _db.Restaurants 
         .Where(r => r.Name.StartsWith(q) || String.IsNullOrEmpty(q)) 
         .Take(2); 
     return restaurents; 
    } 
} 
+0

如果没有找到结果,我会推迟到视图负责处理这种情况。即“找不到结果!”或排序。 – jdphenix

如果我理解正确你的问题:

public ActionResult Search(string q) 
{ 
    Helpers Helpers = new Helpers(); 
    var restaurants = Helpers.getRestaurant(q); 
    if (restaurants.Count() == 0) { 
     // do something 
    } else { 
     // do something else 
    }   

    return View("_RestaurantSearchResults", restaurants); 
} 

看看这里:http://msdn.microsoft.com/en-us/library/bb351562%28v=vs.110%29.aspx。这遍历了IQueryable<T>接口中的所有方法。

通常,当您在寻找如何使用.NET Framework,C#或其他代码的某个部分时,文档是最好的首选地方。

+0

哇。这非常快。谢谢。 – user3386525

试试这个

if (restaurants.Count() != 0) 
{ 
//non-zero thing 
} 

else 
{ 
//zero thing 
} 

简单地检查你的结果计数了。

public ActionResult Search(string q) 
{ 
    Helpers Helpers = new Helpers(); 
    var restaurants = Helpers.getRestaurant(q); 
    if(restaurants.Count()>0) 
    { 
    return View("_RestaurantSearchResults", restaurants); 
    } 
    else 
    { 
    ViewBag.Message="No result found"; 
    return View("_RestaurantSearchResults"); 
    } 
} 

而只是检查ViewBag.Message是否可用或在View中。

+0

嗨,这不是混合控制器和视图的责任? – jdphenix

+0

如果没有结果,有没有其他方法可以查看视图方面? –

+0

当然,只需在视图中进行检查和显示 - 您的答案中唯一的混合责任是“ViewBag.Message =”未找到结果“;' – jdphenix