jQuery ajax返回整个aspx内容

时间:2018-04-11 14:05:38

标签: c# jquery asp.net ajax webmethod

我正在尝试使用jQuery to C#方法进行ajax调用。

$(".imgDbAttachment").on("click", function (e) {
            debugger;
            var fileName = $(this).attr('data-attchment-id');
            fileExt = $(this).attr('data-attchment-type');
            loadAjaxImage(fileName, fileExt);
        });

 function loadAjaxImage(id,type) {
            $.ajax({
                type: "POST",
                url: "../CommonDesign/Test.aspx/GetImage",
                data:{
                    'attachmentId': id,
                },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    console.log(data);
                }
            }).done(function (data) {
                if (console && console.log) {
                    console.log(data);
                }
            });
        }


public partial class Test: System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        var str = this.Request.Url;
    }


   [WebMethod]
    public string GetImage(string attachmentId)
    {

             return "hello";
    }

但是当我进行ajax调用时,控件正在点击PageLoad()&不是GetImage()&这反过来又返回整个aspx页面内容

检查这些链接,

  1. $.ajax Returning HTML of the page instead of results
  2. 其他一些
  3. 但仍然是同一个问题。

    任何建议/高度赞赏。

2 个答案:

答案 0 :(得分:1)

GetImage() 静态

[WebMethod]
public static string GetImage(string attachmentId)
{
   return "hello";
}

更多阅读 here

答案 1 :(得分:0)

当您单击按钮时,看起来您正在发布帖子。最好添加一个

return false; 

到函数的最后一行

$(".imgDbAttachment").on("click", function (e) {
            debugger;
            var fileName = $(this).attr('data-attchment-id');
            fileExt = $(this).attr('data-attchment-type');
            loadAjaxImage(fileName, fileExt);
return false;
        });