无法使用 $.ajax({ 类型:"POST" , 使用 VS2017 C# 将数据从 aspx 文件发送到代码隐藏



我使用网络表单从表单中收集数据,然后将数据发送到code-behind以发送到API。使用一个按钮,我调用一个JavaScript方法,该方法整理数据,然后发送到我的aspx.cs文件,发送到API。按钮的Html代码是

<button class="search btn" ID="btnSearch" onclick="searchApi(); return false;"><i class="fas fa-search"></i>Search</button>

这将运行searchAPI((函数,该函数起作用并创建一个名为SearchData的串联字符串。Javascript代码看起来像这个

var searchString = JsonData;
var trimsearchString = searchString.replace(/,/g, '');
$.ajax({
type: "POST",
url: 'Default.aspx/GetApi',
data: searchString,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert('success');
},
error: function (errordata) {
console.log(errordata);
alert(errordata);
}
});

从未调用Default.aspx文件中的方法GetAPI。方法代码为

[System.Web.Services.WebMethod]
public static void GetApi(string searchData)    
{...

成功:函数(数据(返回成功,但方法背后的代码从未被调用,有人能告诉我我缺少了什么吗。

修复ajax数据,似乎找不到带有此参数的方法

$.ajax({
type: "POST",
url: 'Default.aspx/GetApi',
data: { searchData: trimsearchString},
//or if it is still problem, you can even try
data: JSON.stringify( { searchData: trimsearchString}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data);
},
error: function (errordata) {
console.log(errordata);
alert(errordata);
}
});

你的webmethod应该会返回一些

[WebMethod]
public static string GetApi(string searchData)    
{
return searchData
}

最新更新