2016-06-22 5 views
0

私はアプリケーションで簡単な検索機能を作成しています。私はKendoUI MultiSelectを使いたいと思います。私はコントローラにパラメータを渡す必要がありますが、あなたが選択した最初のものだけを渡すだけです。コントローラに複数のパラメータを渡すにはどうすればよいですか?または私のアプローチは、このタイプのものに間違っていますか?複数のパラメータをコントローラに渡すにはどうすればよいですか?

ここに私のコードです。

ビュー:

@using (Html.BeginForm()) 
{  
    @(Html.Kendo().MultiSelect() 
    .Name("vessel_type")    
    .Placeholder("-- Type --") 
    .AutoBind(false)    
    .BindTo(new List<string>() { 
      "AHTS", 
      "PSV", 
      "Tug" 
      })) 

    <input type="submit" value="Search" /> 
} 

マイコントローラー:

public ActionResult Index(string vessel_type) 
    { 
     var thevessels = from o in db.tbl_vessels 
         select o; 

     if (!String.IsNullOrEmpty(vessel_type)) 
     { 
      thevessels = thevessels.Where(x => 
       x.vessel_type.Contains(vessel_type)); 
     } 

     return View(thecvessels);    

    }  

私はvessel_typeから文字列を受け入れていますが、私は、ユーザーが選択したとして、それはできるだけ多くを取る必要が見ることができるようにそこにことができますように複数あること。何か案は?

感謝

+0

引数の配列/配列を渡し、その長さに応じて配列から値を解析することについて考えましたか?そうすれば、あなたは少なくとも – Thom

+0

の周りに1つの項目だけを渡すでしょう。まず、あなたのフォームメソッドはデフォルトで 'POST'になっています。そうしたい場合はコントローラのActionに' [HttpPost] '属性が必要です。あなたの 'FormAction'を' GET'してください。第2に、リストにバインドする 'List 'を作成しているので、コントローラのパラメータに 'List 'を受け入れないのはなぜですか? 'DefaultModelBinder'はこれを受け取り、データが渡された何かを行うことができるでしょうか?強く型付けされたビューを使用していますか? –

答えて

0

それはあなたが$(「#のvessel_type」)を使用することができますきれいな解決策ではないかもしれないけど。データ(「kendoMultiSelect」)。値は()を文字列に結果をCONCAT、それらをダウンAJAXあなたのコントローラに。あなたはまだstring [] vessel_typeを使ってみましたか?

関連する問題