为什么我的表格没有根据 MVC 中的下拉菜单显示我想要的结果?

笑脸棒

我目前正在创建一个 MVC 应用程序,我想显示一个部分页面,其中包含基于所选下拉列表的汽车列表。我还希望我的应用程序在不需要选择所有下拉菜单的情况下进行搜索。有人建议我使用 if 语句来完成此操作,但我不确定我是否正确执行此操作。目前我无法通过单个下拉列表或 1 个下拉列表 +“可用”下拉列表的任意组合进行搜索。我没有收到任何错误,但没有显示任何结果。

这是我的看法

@model IgnitionHub2._0.Models.Car
@{
    ViewBag.Title = "Car Search Page";
}


<h2>Cars</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<div class="center-div">
    <div class="form-inline">
        @Html.DropDownListFor(model => model.CarLotID, new SelectList(Model.CarLotList, "CarLotID", "LotName"), "Select Car Lot", new { @class = "form-control" })
        @Html.DropDownListFor(model => model.Model.MakeID, new SelectList(Model.MakeList, "MakeID", "Name"), "Select Make", new { @class = "form-control" })
        @Html.DropDownListFor(model => model.ModelID, new SelectList(Model.ModelList, "ModelID", "Name"), "Select Model", new { @id = "ModelID", @class = "form-control" })
        @Html.DropDownListFor(model => model.Available, new[] { new SelectListItem { Text = "Yes", Value = "true" }, new SelectListItem { Text = "No", Value = "false" } }, "Available", new { @id = "Available", @class = "form-control" })
        <button id="search">Search</button>
    </div>
</div>
<div id="searchResults">
    @{Html.RenderPartial("_Index", Model.CarList);}
</div>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    <script src="~/Scripts/jquery-3.4.1.min.js"></script>
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

    <script type="text/javascript">
    $(document).ready(
        function () {
        var makeUrl = '@Url.Action("GetCarDetails")';
        var models = $('#ModelID')
        $('#Model_MakeID').change(function () {
            models.empty();
                $.getJSON(makeUrl, { MakeID: $(this).val() },function(data){
                    if (!data) {
                        return;
                    }
                    models.append($('<option></option>').val('').text('Please select'));
                    $.each(data, function(index, item) {
                        models.append($('<option value=' + item.ModelID + '></option>').text(item.Name));
                    });
                });
            })
        })
        $(document).ready(function () {
         var url = '@Url.Action("DisplaySearchResults","Car")';
        $('#search').click(function () {
            var carLotID = $('#CarLotID').val();
            var makeID = $('#Model_MakeID').val();
            var modelID = $('#ModelID').val();
            var available = $('#Available').val();
            $('#searchResults').load(url + "?CarLotID=" + carLotID + "&MakeID=" + makeID + "&ModelID=" + modelID +"&Available=" + available);
        })
        })
    </script>
}

这是我的控制器

public ActionResult DisplaySearchResults(int? CarLotID, int? MakeID, int? ModelID, bool? Available)
    {
        if (CarLotID == null)
        {
            var makeModel = db.Cars.Where(c => c.Model.MakeID == MakeID && c.ModelID == ModelID && c.Available == Available).ToList();

           return PartialView("_Index", makeModel);
        }
        if (MakeID == null)
        {
            var calotModel = db.Cars.Where(c => c.CarLotID == CarLotID && c.ModelID == ModelID && c.Available == Available).ToList();
            return PartialView("_Index", calotModel);
        }
        if (ModelID == null)
        {
            var makeCarLot = db.Cars.Where(c => c.CarLotID == CarLotID && c.Model.MakeID == MakeID && c.Available == Available).ToList();
            return PartialView("_Index", makeCarLot);
        }
        if (Available == null)
        {
            var mmLot = db.Cars.Where(c => c.CarLotID == CarLotID && c.Model.MakeID == MakeID && c.ModelID==ModelID).ToList();
            return PartialView("_Index", mmLot);
        }
        if(Available == null & CarLotID == null)
        {
            var model = db.Cars.Where(c => c.Model.MakeID == MakeID && c.ModelID == ModelID).ToList();
            return PartialView("_Index", model);
        }
        if (Available == null && MakeID == null)
        {
            var model = db.Cars.Where(c => c.CarLotID == CarLotID && c.ModelID == ModelID).ToList();
            return PartialView("_Index", model);
        }
        if (Available == null && ModelID == null)
        {
            var model = db.Cars.Where(c => c.Model.MakeID == MakeID && c.CarLotID == CarLotID).ToList();
            return PartialView("_Index", model);
        }
        if (ModelID == null && CarLotID == null)
        {
            var model = db.Cars.Where(c => c.Model.MakeID == MakeID && c.Available == Available).ToList();
            return PartialView("_Index", model);
        }
        if (MakeID == null && CarLotID == null)
        {
            var model = db.Cars.Where(c => c.ModelID == ModelID && c.Available == Available).ToList();
            return PartialView("_Index", model);
        }
        if (MakeID == null && ModelID == null)
        {
            var model = db.Cars.Where(c => c.CarLotID == CarLotID && c.Available == Available).ToList();
            return PartialView("_Index", model);
        }
        if (ModelID == null && CarLotID == null && MakeID==null)
        {
            var model = db.Cars.Where(c => c.Available == Available).ToList();
            return PartialView("_Index", model);
        }
        if (ModelID == null && CarLotID == null && Available == null)
        {
            var model = db.Cars.Where(c => c.Model.MakeID == MakeID).ToList();
            return PartialView("_Index", model);
        }
        if (Available == null && CarLotID == null && MakeID == null)
        {
            var model = db.Cars.Where(c => c.ModelID == ModelID).ToList();
            return PartialView("_Index", model);
        }
        if (ModelID == null && Available == null && MakeID == null)
        {
            var model = db.Cars.Where(c => c.CarLotID == CarLotID).ToList();
            return PartialView("_Index", model);
        }
        if (ModelID == null && Available == null && MakeID == null &&CarLotID==null)
        {
            var model = db.Cars.ToList();
            return PartialView("_Index",model);
        }
        else
        {
            var model = db.Cars.Where(c => c.Model.MakeID == MakeID && c.ModelID == ModelID &&
            c.CarLotID == CarLotID && c.Available == Available).ToList();// build list based on parameter searchText
            return PartialView("_Index", model);
        }
    }
    public ActionResult _Index()
    {
        var cars = new List<Car>(db.Cars.Include(x => x.Images).ToList()); 
        return PartialView(cars);
    }

我没有包含这篇文章的部分页面,因为它没有引起任何问题,而且我不想让这篇文章更长。

请帮忙!先感谢您。

笑脸棒

在做了一些研究之后,我意识到这种方法是错误的。我根据这篇文章的内容在我的表格上完成了所需的搜索结果:Filtering search using multiple dropdowns in MVC

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的下拉菜单显示在顶部?

为什么我的 div 元素没有根据我的移动功能移动?

为什么没有根据我通过的x,y设置绘制线条?

为什么我的游戏代码没有根据用户输入循环返回和退出?

链接背景没有根据我想要的改变

我正在为我的 ASP.NET MVC 程序使用 DataTables 插件。表格显示没有任何 CSS。为什么?

为什么 Bootstrap 不允许我在 ASP.NET MVC 页面中的下拉菜单上设置边距?

我该如何解决这个下拉菜单显示问题?

我的图像没有根据父母的尺寸伸展

为什么我没有弹出菜单显示在Eclipse中?

当我输入一段代码时,为什么下拉菜单中没有显示文本

为什么我的kivy下拉菜单没有显示(Python)?

为什么我的Modal没有显示在ASP.NET Core MVC的“查看”页面中?

为什么我的AJAX请求没有从下拉菜单中获取正确的值?

如何在ASP.NET Core MVC的其他下拉菜单中根据用户选择填充下拉菜单?

Laravel 5.7 使用动态下拉菜单显示数据库列中的所有值

我没有根据我的时区获得时间

NetworkManager 没有根据我给它的配置更新我的 /etc/resolv.conf

如何根据下拉菜单Asp MVC设置与显示字段相同的隐藏字段

我不明白为什么我没有MVC AJAX

为什么我的 HTML 表格没有正确显示?

为什么我没有在ASP.Net MVC控制器中获取AJAX数据?

为什么我的 post dall 没有在 MVC 和 Angular 7 中获取数据

如何使 Bootstrap 下拉菜单显示在粘性表格标题的前面?

角度-如何根据垫子选择下拉菜单显示文本/字符串/日期类型

当我的HTML文件位于“共享”文件夹中时,为什么它没有显示在MVC 4中?

我不知道为什么我的下拉菜单没有隐藏

我的下拉菜单中的值重复

jQuery:我的下拉菜单中的getPos