簡體   English   中英

如何在代碼中使用IEnumerable字符串參數?

[英]How do I use an IEnumerable string parameter in my code?

作為搜索頁面的一部分,我允許用戶使用KendoUI Multiselect小部件對特定搜索詞進行多項選擇。 集合中的這些項目作為參數傳遞給我的控制器。 我的問題是,將它們傳遞給控制器​​后,如何使用它們? 更具體地說,如何在使用Contains方法的Where語句中使用它們。

這是我的多選小部件代碼

@(Html.Kendo().MultiSelect()
  .Name("vessel_type")
  .Placeholder("Select Type")
  .BindTo(new List<string>() {
      "AHTS",
      "PSV",
      "Special"
   }))

這是我的控制器代碼,它使用vessel_type作為參數

public ActionResult Search(IEnumerable<string> vessel_type)
    {
        var vessels = (from o in db.vessels
                       select o);
        vessels = vessels.Where(s => s.vessel_type.Contains(vessel_type));
        return PartialView("_results", vessels);
    }

這行是不正確的,因為它需要一個字符串,但是我有一個mroe集合,而不是一個:

 vessels = vessels.Where(s => s.vessel_type.Contains(vessel_type));

謝謝

如果我正確理解了這個問題,我相信您需要vessel_type執行檢查,即檢查vessel_type集合是否包含容器的類型:

vessels = vessels.Where(s => vessel_type.Contains(s.vessel_type));

這里ContainsIEnumerable<T>的擴展方法。

附帶說明一下,由於參數表示集合,因此我認為復數名稱更合適,例如vessel_types

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM