无法使用 $.ajax( type: "POST", using VS2017 C# 将数据从 aspx 文件发送到代码后面
Posted
技术标签:
【中文标题】无法使用 $.ajax( type: "POST", using VS2017 C# 将数据从 aspx 文件发送到代码后面【英文标题】:Cannot send data from aspx file to code behind using $.ajax( type: "POST", using VS2017 C#无法使用 $.ajax( type: "POST", using VS2017 C# 将数据从 aspx 文件发送到代码后面 【发布时间】:2021-12-20 02:25:41 【问题描述】:我正在使用网络表单从表单中收集数据,然后将数据发送到代码隐藏以发送到 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.cs 文件中的 GetAPI 方法永远不会被调用。方法代码是
[System.Web.Services.WebMethod]
public static void GetApi(string searchData)
...
成功:函数(数据)返回成功,但方法背后的代码从未被调用,有人可以告诉我我缺少什么。
【问题讨论】:
【参考方案1】:修复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]
public static string GetApi(string searchData)
return searchData
【讨论】:
感谢您的帮助,我尝试了两个数据条目并返回成功,但没有运行或到达后面代码上的 GetApi(string searchData) 方法以上是关于无法使用 $.ajax( type: "POST", using VS2017 C# 将数据从 aspx 文件发送到代码后面的主要内容,如果未能解决你的问题,请参考以下文章
使用 serverSide 后,带有 Ajax 的 DataTable 无法正常工作:true