Violetttte 2022-12-15 11:42 采纳率: 82.8%
浏览 24
已结题

怎么用asp.net+ajax将前台数据传回后台?

下面是我前台的代码

   <script>
                $(function () {
                var getdata = "1";
                    $.ajax({
                        type: 'post',
                        url: "ajax.aspx/test",
                        dataType: "json",
                        async: false,
                        data: { getdata:'1' },
                        success: function (obj) {
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            alert(XMLHttpRequest.responseText);

                        }
                    });
                })
            </script>

下面是我后台的代码

[WebMethod]
        public static string  test(string id)
        {
            
            return id;
        }

但是我打开网页的时候报错,显示如下

img


我想知道为什么会报错?是我引入的js文件有问题还是什么?
其次,我发现后台的方法只能写静态的方法,我想问如果我想在一个asp.net的服务器button控件中接收前台ajax传来的代码的话该怎么写?因为一个Button对应的onclick方法不是如下的吗?但是这个Button方法的参数一个是object,一个是EventArgs,我是可以通过再加一个String来接收ajax传递的参数吗,还是该怎么做呢?因为我想做的事情是点击按钮后 后台读取前台ajax传来的数据。

protected void Button1_Click(object sender, EventArgs e)
        {
            …………;
        }

展开全部

  • 写回答

2条回答 默认 最新

  • _东_ 2022-12-16 06:47
    关注

    asp:button 如果想要调用 ajax 请求又不回发整个页面的话,使用 onClientClick就行了。 或者使用javascript/jquery 通过元素点击事件来执行 ajax请求就行。 简单例子:

    <body>
        <form id="form1" runat="server">
            <div>
                <asp:Button runat="server" ID="setSession" Text="set Sesssion" OnClientClick="callAjax();return false;" />
            </div>
        </form>
        <script src="Scripts/jquery-3.4.1.min.js"></script>
        <script>
            var getdata = 1;
    
            function callAjax() {
                $.ajax({
                    type: "POST",
                    url: "End.aspx/test",
                    data: "{id:" + getdata + "}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        // Do something interesting here.
                        console.log(msg);
                    }
                });
            }
        </script>
    </body>
    

    注意传递参数名和 Webmethod 中的要保持一致,并且在执行请求结束时,加上return false;阻止页面回发。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月23日
  • 修改了问题 12月15日
  • 创建了问题 12月15日

悬赏问题

  • ¥15 Unet采样阶段的res_samples问题
  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用
  • ¥15 我如果只想表示节点的结构信息,使用GCN方法不进行训练可以吗
  • ¥15 QT6将音频采样数据转PCM
  • ¥15 下面三个文件分别是OFDM波形的数据,我的思路公式和我写的成像算法代码,有没有人能帮我改一改,如何解决?
  • ¥15 Ubuntu打开gazebo模型调不出来,如何解决?
  • ¥100 有chang请一位会arm和dsp的朋友解读一个工程
  • ¥15 查询优化:A表100000行,B表2000 行,内存页大小只有20页,运行时3页,设计两个表等值连接的最简单的算法