用于从 aspx 页调用代码隐藏方法的 AJAX 代码不起作用

AJAX code for calling code-behind method from aspx page doesn't work

本文关键字:代码 方法 AJAX 不起作用 隐藏 用于 aspx 调用      更新时间:2023-09-26

单击锚链接后,我想调用代码隐藏函数(将一些HTML内容代码加载到页面中)。

代码隐藏:

public void loadNewPage(string id)
    {
        ltlContent.Text = getPageCenter(id);
    }

JS代码:

$('a').click(function (e) {
            e.preventDefault();
            var data = { userName: $(this).attr("id") };
            var dataVal = JSON.stringify(data);
            $.ajax({
                type: "POST",
                url: "Default.aspx/loadNewPage()",
                contentType: "application/json; charset=utf-8",
                data: dataVal,
                dataType: "json",
                success: function (id) {
                }
            });
        });

.HTML:

<a href="#" id="kontakt">Go to Kontakt</a>

我得到的只是#被添加到 URL 的后面,并且没有调用代码隐藏函数。

试试这个:

在您的锚点中执行以下操作:

<a href="javascript:void(0)" id="kontakt">Go to Kontakt</a>

并将您的 ajax 脚本修改为:

$('a').click(function (e) {
     var data = { 'id': $(this).attr("id") };
     var dataVal = JSON.stringify(data);
     $.ajax({
            type: "POST",
            url: "Default.aspx/loadNewPage",
            contentType: "application/json; charset=utf-8",
            data: dataVal,
            dataType: "json",
            success: function (id) {
      }
   });
});

试试这个:

JavaScript:

$(document).ready(function(){
    $('a').click(function (e) {
         e.preventDefault();
         var data = { 'id': $(this).attr("id") };
         var dataVal = JSON.stringify(data);
         $.ajax({
                type: "POST",
                url: "Default.aspx/loadNewPage",
                contentType: "application/json; charset=utf-8",
                data: dataVal,
                dataType: "json",
                success: function (data) {
                    var htmlStr = data.d;
                    $('#ltlContent').html(htmlStr);
                }
         });
    });
});

C# 代码隐藏:

using System.Web.Services;
[WebMethod()]
public static string loadNewPage(string id) {
       string result = getPageCenter(id);
       return result;
}

如果这一切都有效,那么只需在jquery ajax调用的成功中将html字符串注入到您想要的任何位置