Попытка сделать фильтр для таблицы, которая показывает некоторые продукты.
метод для View выглядит следующим образом:
public ActionResult BikeFilter(int? page, string SelectWheelSize, int? catId)
{
....some code.....
}
В базе данных у меня есть различные типы продуктов, и у каждого типа есть свой CategoryId. Например - велосипеды имеют CategoryId = 1.
это часть HTML:
<form class="form-filter" method="get" action="@Url.Action("BikeFiler", "Shop", new { catId = "1"})">
<div class="form-inline filter">
<label>Wheel size:</label>
<select name="SelectWheelSize">
<option selected></option>
@foreach (var item in ViewBag.WheelSizes)
{
<option value="@item.Value">@item.Text</option>
}
</select>
<input type="submit" value="Apply" class="btn btn-success btn-sm"/>
</div>
</form>
Если пользователь не выбрал параметры для фильтрации и нажал «Применить» - он должен работать следующим образом: метод «public ActionResult BikeFilter ()» получает catId = 1 и делает SELECT из базы данных для всех продуктов, у которых CategoryId = 1.
Однако я получаю весь список товаров.
Я посмотрел в Debug и обнаружил, что catId имеет значение NULL.
В ActionLinks, как этот:
@Html.ActionLink("Bicycles","Bicycles","Shop", new {catId = "1"},new {@class = "nav-link"})
@Html.ActionLink("Scooters", "Scooters", "Shop", new { catId = "3" }, new { @class = "nav-link" })
работает отлично, и метод всегда получает правильный catId.
Что я делаю не так?