我使用网络表单从表单中收集数据,然后将数据发送到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
}