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

时间:2013-09-04 12:04:43

标签: javascript jquery asp.net ajax

点击锚链接后,我想调用一个代码隐藏函数(将一些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的后面添加了#并且没有调用代码隐藏功能。

2 个答案:

答案 0 :(得分:0)

试试这个:

在您的锚中

执行此操作:

<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) {
      }
   });
});

答案 1 :(得分:0)

试试这个:

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字符串