从Javascript(JQuery)调用C#函数(WebMethod)

时间:2015-05-19 20:54:39

标签: javascript c# jquery asp.net ajax

我有这样的功能

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

我想在我的aspx页面中调用它。所以这就是我想要的

    function sendData(){
        $.post("Default.aspx/Hello", function(data){
            alert(data);
        }).fail(function() {
            alert( "error" );
        });
    }

现在正在调用此功能是成功的并且不会返回错误,但它并没有返回我想要的内容。而不是返回字符串"你好"它给了我一个页面的html字符串

3 个答案:

答案 0 :(得分:1)

您需要使用data.d

function sendData(){
        $.post("Default.aspx/Hello", function(data){
            alert(data.d);
        }).fail(function() {
            alert( "error" );
        });
    }

Dave Ward article了解您需要使用.d

的原因

您还需要确保添加了脚本管理器和EnablePageMethods,即

<asp:ScriptManager runat="server" EnablePageMethods="true">
</asp:ScriptManager>

答案 1 :(得分:0)

我认为你应该在你的js方法中使用$ .ajax而不是$ .post,因为如果没有另外指定,GET http方法是控制器中使用的默认值。

答案 2 :(得分:0)

我认为你很亲密。在我的项目中,我使用$ .ajax。我从我的项目中提供了代码示例(工作正常),我希望它有所帮助。

<强> C#

    [WebMethod]
    public static List<ConnectionStatusInfo> GetConnectionStatus()
    {
       .....
    }

<强>的JavaScript

$.ajax({    url: "ConnectionStatus.aspx/GetConnectionStatus",
            dataType: "json",
            type: 'POST',
            data: null,
            contentType: "application/json; charset=utf-8",
            success: function (data) {

            },
            error: function (d) {

            }
        });