用于多重选择的MVC Linq允许多重选择

本文关键字:选择 Linq 许多重 MVC 用于 | 更新日期: 2023-09-27 18:16:38

我有一个带有多个选择的MVC web应用程序,允许用户可以使用多个选择来过滤数据。例如:一个汽车数据库,用户可以根据品牌、颜色和车身样式进行选择。可能的搜索是(红色或蓝色)和(雪佛兰或福特)和(SUV)。viewmodel中返回的所有select都是字符串数组所有都正确返回到控制器。我有"红色"answers"蓝色"的颜色数组,"雪佛兰"answers"福特"的模型数组和"SUV"的BodyStyle数组。现在我已经将模型发布到控制器,我如何构建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);
}

用于多重选择的MVC Linq允许多重选择

var list = new List<string> { "red", "orange"};
    from c in DB.Cars
    where list == null || list.Contains(c.Color)
    select c;