2016-08-04 1 views
0

私の検索ページの一環として、KendoUI Multiselectウィジェットを使用して、特定の検索条件に対して複数選択を許可しています。コレクション内のこれらの項目は、パラメーターとしてコントローラーに渡されます。私の質問は、私がそれらを私のコントローラに渡した後、どのように使用するのですか?より具体的には、Containsメソッドを使用するWhereステートメントでどのように使用するのですか?ここでコードでIEnumerable文字列パラメータを使用するにはどうすればよいですか?

はここでマルチ選択ウィジェット

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

ための私のコードで私のコントローラコードは、文字列を期待していますので、この行は正しくないパラメータ

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

としてvessel_typeを使用しているあります私は1つ以上のmroeのコレクションを持っています:

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

ありがとう

+0

's.vessel_type'の種類は何ですか? – StriplingWarrior

答えて

2

私が正しく質問を理解していれば、私はあなたが他の方法で回避を確認する実行する必要があると信じて、それはvessel_typeコレクションは容器の種類が含まれているかどうかをチェックです:

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

ここContainsは、上の拡張メソッドでありますIEnumerable<T>

注:パラメータがコレクションを表すため、複数の名前がより適切と思われます(たとえば、vessel_types)。

+0

ああ、理解してくれてありがとうございます。 – Yanayaya

関連する問題