如何在此操作中使用?
问题描述:
如果没有结果,如何为此方法编写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;
}
}
答
如果我理解正确你的问题:
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中。
如果没有找到结果,我会推迟到视图负责处理这种情况。即“找不到结果!”或排序。 – jdphenix