加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – AJAX参数到MVC控制器不是NULL?

发布时间:2020-12-15 22:42:10 所属栏目:百科 来源:网络整理
导读:我有一个下拉列表,我可以选择位置来过滤我的数据. 我有一个数组,我用AJAX发布到我的控制器.在我的本地计算机上,当我没有按照预期从我的下拉列表中选择任何内容时,我将参数设置为null.但是,在我的实时网站上,似乎变量不为null,因为它查询数据,因此结果为空.
我有一个下拉列表,我可以选择位置来过滤我的数据.

我有一个数组,我用AJAX发布到我的控制器.在我的本地计算机上,当我没有按照预期从我的下拉列表中选择任何内容时,我将参数设置为null.但是,在我的实时网站上,似乎变量不为null,因为它查询数据,因此结果为空.

怎么会这样?我希望该值为null,因此我可以正确过滤数据.

谢谢,
斯特凡

JQuery

$("#main").on("click","#submit-search-catalog",function () {
    var url = "/Home/Catalog";

    var locations = $("#County").val();

    if (url != "") {
        $.post(url,{ locations: locations },function (data) {
            if (data) {
                $(".catalog-container").html(data);
            }
        }).fail(function (xhr,status,error) {
            alert("Error");
        });
    }

    return false;
});

MVC Controller

public async Task<ActionResult> Catalog(int[] locations = null)
    {

        var companies = await db.Users.Where(u => u.IsVisibleInCatalog.Equals(true)).OrderBy(u => u.CompanyRegistrationDate).ToListAsync();

        //Sort locations
        if (!(locations == null || locations.Length == 0))
        {
            companies = companies.Where(c => locations.Contains(c.CompanyLocation) || c.CompanyLocation.Equals(1)).ToList();
        }

        var model = new CatalogViewModel
        {
            Companies = companies
        };

        if (Request.IsAjaxRequest())
        {
            return PartialView("~/Views/Home/_CatalogListPartial.cshtml",companyList);
        }

        return View(model);
    }

— EDIT

我试过这个进行bug测试,在本地它警告“空”,服务器端警告“null”:

if (locations == null)
        alert("null");

    if (locations.length == 0)
        alert("empty");

解决方法

在jquery上选择喜欢 $( “#县”)VAL(); 可能是基于版本的问题.关于val()函数;在jQuery 3.0中,如果没有选择任何选项,它将返回一个空数组;在jQuery 3.0之前,它返回null. 但它可以改为像radiobutton或combo这样的对象类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读