MVC Linq用于多个选择,允许多个选择

时间:2014-08-04 20:00:48

标签: c# asp.net-mvc linq

我有一个MVC Web应用程序,其中包含多个选项,允许用户可以使用多个选项来过滤数据。例如:汽车数据库,用户可以通过品牌,颜色和身体样式进行选择。可能的搜索是(红色或蓝色)和(雪佛兰或福特)和(SUV)。我将我的viewmodel中返回的所有选择作为字符串数组,并且所有选择都正确地返回到我的控制器。我的Color数组有'Red'和'Blue',Model数组有'Chevy'和'Ford',BodyStyle数组有'SUV'。现在我已将模型发布到控制器,如何构建linq语句,允许这些条件空白或包含多个选择?

型号:

public class SearchViewModel
{
    public string[] Model { get; set; }
    public string[] Color { get; set; }
    public string[] Body { get; set; }
}

控制器:

public ActionResult Search(SearchViewModel search)
{
    //TODO: Create linq for all search criteria
    List<Cars> cars = db.Cars.Where(car => car.Model == search.Model[0]);

    return View(cars);
}

1 个答案:

答案 0 :(得分:1)

var list = new List<string> { "red", "orange"};

    from c in DB.Cars
    where list == null || list.Contains(c.Color)
    select c;