使用ASP.NET WebMethod返回整个页面的Jquery AJAX

我正在做一些简单的测试(准备一个更大的项目),使用JQuery AJAX调用ASP.NET WebMethod。 在我的例子中,我的WebMethod返回一个简单的字符串。 但是,当我尝试使用JQuery调用它时,我得到的是返回的整个HTML页面内容,而不仅仅是我的字符串。 我错过了什么?

客户端 :

$(document).ready(function ready() {
        $("#MyButton").click(function clicked(e) {
            $.post("Default.aspx/TestMethod",
                {name:"Bob"},
                function(msg) {
                    alert("Data Recieved: " + msg);
                },
                "html"
            );
        });
    });

服务器端:

using System;
using System.Web.Services;

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

        }

        [WebMethod]
        public static string TestMethod(string name)
        {
            return "The value submitted was " + name;
        }
    }
}

看看这个链接。 我使用他的一些其他帖子来调用WCF服务,并取得成功。 一定要看看相关的文章:

http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

通读文章,但其实质上是:

  $("#Result").click(function() {
    $.ajax({
      type: "POST",
      url: "Default.aspx/GetDate",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(msg) {
        $("#Result").text(msg.d);
      }
    });
});

我想我对JQuery的$ .post命令中的“type”参数感到困惑。 在与一些人交谈后,似乎调用WebMethod的返回类型必须是“json”。 我试图使用“HTML”。 一旦我将它改为“json”,然后一切正常。 显然,用[WebMethod]装饰的方法只返回JSON,而这正是我的挂断所在。

感谢您的回复家伙。


尝试将最后一个参数“html”更改为“文本”。 该参数指定要返回的数据的类型。

链接地址: http://www.djcxy.com/p/63589.html

上一篇: Jquery AJAX with ASP.NET WebMethod Returning Entire Page

下一篇: How do I Bind a WPF Ellipse's Height to its own Width?