无法使用 $.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

解决ajax请求返回Json无法解析""字符的问题

$.ajax( type: "POST" POST 方法到 php

ajax Jquery相关问题

关于谷歌,火狐浏览器无法响应ajax方法的问题,急急急

spring mvc ajax 后台向前台返回list