将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#代码的主要内容,如果未能解决你的问题,请参考以下文章