将ajax请求中的多个参数传递给函数后面的C#代码

Posted

技术标签:

【中文标题】将ajax请求中的多个参数传递给函数后面的C#代码【英文标题】:Passing multiple parameters in ajax request to C# code behind function 【发布时间】:2020-12-02 16:42:37 【问题描述】:

我无法将多个参数从我的 ajax 函数传递到我的 C# 函数。当我在我的 ajax 函数中仅传递 1 个参数(vthaForm)时,它会正确发送到 OnPostApprove 方法,并填写 vthaForm 中的所有属性。但是,当我尝试在来自 ajax 函数的数据中包含注释参数时,到达 OnPostApprove 方法时的 vthaForm 和注释变量都没有使用正确的值进行初始化。

我尝试了一些与其他帖子不同的解决方案,但都没有成功。

如果有人能指出我正确的方向,将不胜感激。

//This is my C# code on the codebehind page Approver.cshtml.cs
public IActionResult OnPostApprove([FromBody]VthaForms vthaForm, [FromBody]string comment);


//This function is my Approver.cshtml razor page
//vthaform = JSON object, handler ="Approve", _comment is a string

function approveform(vthaform, handler, _comment)  
        var package = 
            vthaForm: vthaform, 
            comment: _comment
        ;

        $.ajax(
            type: "POST",
            url: 'Approver/?handler=' + handler,
            data: JSON.stringify(package),
            beforeSend: function (xhr) 
                xhr.setRequestHeader("XSRF-TOKEN",
                    $('input:hidden[name="__RequestVerificationToken"]').val());
            ,
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        ).done(function (data) 
            console.log(data.name);
            alert("Succesfully approved " + data.name +"'s VTHA with id: " + data.id + "." )
        );
    

【问题讨论】:

【参考方案1】:

简而言之,您不能像那样绑定多个参数,它必须是一个对象。

通读一遍,看看它是否能回答你的问题。

WebAPI Multiple Put/Post parameters

【讨论】:

谢谢施韦切尔。我能够使用您发送给我的链接中的简单参数类解决方案使其工作。但无论出于何种原因,我都无法让 JObject 解决方案发挥作用。

以上是关于将ajax请求中的多个参数传递给函数后面的C#代码的主要内容,如果未能解决你的问题,请参考以下文章

将多个参数传递给 jQuery ajax 调用

将 Id 参数传递给 ajax 函数

使用AJAX将参数传递给PHP函数

JavaScript/jQuery:将多个参数传递给 API 中的 POST 请求

如何将子函数的参数传递给父 reactjs

将参数传递给C#中的存储过程