2014-03-14 48 views
0

如果沒有結果,如何爲此方法編寫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

回答

2

如果我理解正確你的問題:

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

0

試試這個

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

else 
{ 
//zero thing 
} 
0

簡單地檢查你的結果計數了。

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