1

私はMvc3が初めてで、データベースからMultiSelectListを作成するだけで問題なく動作しますが、MultiSelectListの選択した値に基づいて検索したいのですが、これを行う方法を処理できません

http://www.asp.net/mvc /tutorials/javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc

上記のリンクを使用して、MultiSelectList を作成できます
。 MultiSelectListから選択された値の基礎私の質問は、データベースからレコードを取得するために別のビューを作成する必要があるということですが、問題はレコードを選択するためのデータベースクエリがどうなるかです

4

1 に答える 1

0

サンプル ソース コードを見ると、国のリストが multiselectlist に読み込まれていることがわかります。

public ActionResult MultiCountryVM() { 
    return View(new CountryViewModel()); 
} 

public ActionResult MultiSelectCountry() { 
    ViewBag.Countrieslist = GetCountries(null); 
    return View(); 
} 

private MultiSelectList GetCountries(string[] selectedValues) { 
    List<Country> Countries = new List<Country>() 
    { 
        new Country() { ID = 1, Name= "United States" }, 
        new Country() { ID = 2, Name= "Canada" }, 
        new Country() { ID = 3, Name= "UK" }, 
        new Country() { ID = 4, Name= "China" }, 
        new Country() { ID = 5, Name= "Japan" } 
    }; 

    return new MultiSelectList(Countries, "ID", "Name", selectedValues); 
} 

次に、フォーム ポストで、選択した値を ViewBag に保存します。

[HttpPost] 
public ActionResult MultiSelectCountry(FormCollection form) { 
    ViewBag.YouSelected = form["Countries"]; 
    string selectedValues = form["Countries"]; 
    ViewBag.Countrieslist = GetCountries(selectedValues.Split(',')); 
    return View(); 
} 

彼らはそれを ViewBag に入れて MultiCountryVM ビューに渡すことができるように見えますが、実際にはデータに対してクエリを実行していません。クエリを実行する場合は、適切なコンテキストを使用して LINQ クエリを作成するだけで済みます。これは、音楽エンティティのコンテキストしかないため、これも記述する必要があります。

于 2012-07-13T14:11:35.097 に答える