【发布时间】:2019-11-04 00:27:07
【问题描述】:
尝试对显示一些产品的表格进行过滤。
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 并从数据库中为 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。
我做错了什么?
【问题讨论】:
标签: c# html asp.net-mvc-5