使用MultiSelectList在mvc3中搜索

时间:2012-07-13 13:22:31

标签: asp.net asp.net-mvc-3 multi-select

我是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中的选定值搜索记录 我的问题是,我应该创建另一个View来从数据库中获取记录,但问题是选择记录的数据库查询

1 个答案:

答案 0 :(得分:0)

如果您查看示例源代码,可以看到他们将国家/地区列表加载到多选列表中:

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查询,你也必须编写它,因为它们只有音乐实体的上下文。