Фильтрация через checkbox ASP.NET Core Mvc
ИДЕЯ
Я хочу сделать фильтрацию через checkbox для интернет магазина.
Значения для checkbox-ов я беру из базы данных и передаю их контроллеру:
private readonly IAllCars _carRep;
AppDBContent db;
public HomeController(IAllCars carRep, AppDBContent appDB)
{
_carRep = carRep;
db = appDB;
}
public ViewResult Index()
{
ViewBag.brands = db.Brand.ToList();
ViewBag.categories = db.Category.ToList();
var homeCars = new HomeViewModel
{
AllCars = _carRep.Cars
};
return View(homeCars);
}
В представлении визуализирую таким образом:
@model HomeViewModel
<div class="col-md-4">
<form asp-controller="Home" asp-action="Index" method="get" class="form_class">
<a href="#">Марка</a>
<div>
@foreach (var item in ViewBag.brands)
{
<input type="checkbox" value="@item.id" name="brandId" id="@item.name"/>
<label>@item.name</label>
}
</div>
<a href="#">Категория</a>
<div>
@foreach (var item in ViewBag.categories)
{
<input type="checkbox" value="@item.Id" name="categoryId" id="@item.categoryName"/>
<label>@item.categoryName</label>
}
</div>
<input type="submit" value="Фільтр" class="btn" />
</form>
</div>
Далее при отправке формы происходит фильтрация вот так:
[HttpGet]
public IActionResult Index(int brandId, int categoryId)
{
var filter = _carRep.Cars.Where(c => c.brandID == brandId || c.categoryID == categoryId);
var homeCars = new HomeViewModel
{
AllCars = filter
};
ViewBag.brands = db.Brand.ToList();
ViewBag.categories = db.Category.ToList();
return View(homeCars);
}
СУТЬ ПРОБЛЕМЫ
Фильтры работают нормально только когда выбрано по одному фильтру одной и/или всех категорий фильтрации! Например:

Но если выбрать несколько одинаковых фильтров то не все сработают а только первые фильтры своих категорий фильтрации.
Проблема тут очевидна контроллер не может обработать несколько brandId, и/или несколько categoryId. Я пробывал делать brandId и categoryId массивам: (int[] brandId, int[] categoryId) но не помогло
