将空参数从 Ajax 发送到控制器

Posted

技术标签:

【中文标题】将空参数从 Ajax 发送到控制器【英文标题】:send null parameter from Ajax to controller 【发布时间】:2013-05-03 14:26:21 【问题描述】:

我有一个 jquery 函数,它对控制器中的函数进行 AJAX 调用。 控制器函数接受 3 个参数。 在某些时候,我需要将第三个参数作为 null 传递。因为这将用于检查控制器功能。

当我需要发送第三个参数的值时,我是这样调用函数的。

$.ajax(
            type: "POST",
            contentType: "application/json",
            url: "/Transactions/Cancel/" + transactionID + "/" + reasonForCancel,
            data: $.toJSON(Comment),
            success: function (cancelInfo) 

                

        );

现在对于其他地方的同一个调用,我没有“评论”值(我在评论对象中发送的那个),因此我需要在那里传递 null。 请建议我在这里做什么。

附:当必须发送 null 时,我无法测试功能,这就是我在这里询问的原因。

【问题讨论】:

请发布更多与此相关的代码,包括控制器。 如果你没有评论值,那么你可以使用comment = 'null';只是为了确保即使您没有价值也能传递一些价值。 【参考方案1】:

你可以试试这个吗?

var myObj = null;
if(objectIsNotNull)
   myObj = $.toJSON(Comment);

 $.ajax(
    type: "POST",
    contentType: "application/json",
    url: "/Transactions/Cancel/" + transactionID + "/" + reasonForCancel,
    data: myObj,
    success: function (cancelInfo) 
     

);

【讨论】:

为什么 OP 应该“试试这个”?一个好的答案总是会解释所做的事情以及这样做的原因,不仅适用于 OP,而且适用于 SO 的未来访问者。【参考方案2】:

试试这个……

    var param1 = val1;
    var param2 = val2;
    var param3 = null;
    var paramComment = '';
    var param =  "p1": "", "p2": "", "p3": "", "comment" : "" ;
    param.p1= param1;
    param.p2= param2;
    param.p3 = param3;
    param.comment = paramComment;
    $.ajax(
        url: '/Transactions/Cancel',
        data: JSON.stringify(param),
        type: 'POST',
        contentType: 'application/json;',
        dataType: 'json',
        success: function (cancelInfo) 
        
    );

【讨论】:

为什么 OP 应该“试试这个”?一个好的答案总是会解释所做的事情以及这样做的原因,不仅适用于 OP,而且适用于 SO 的未来访问者。

以上是关于将空参数从 Ajax 发送到控制器的主要内容,如果未能解决你的问题,请参考以下文章

将空数组发送到 webapi

剑道网格发布和删除将空值发送到控制器

如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?

ajax 将 null 发送到 MVC Api 控制器

将 JSON 发送到 web 方法?

如何使用ajax将数据从视图发送到控制器laravel?