开发者

asp.net jquery ajax post

开发者_C百科I'm trying to call an asp.net method using jquery/ajax from a button click on a modal dialog window. But all I seem to get is and alert saying "error". I've seen many similar examples for this online but I can't seem to get it to work. The page/method I'm calling (newcall.aspx/savenote) is the same page as all the jquery/ajax etc.

Anyone any ideas?

Thanks,

        var dlg = jQuery("#dialog2").dialog({
            bgiframe: false,
            autoOpen: true,
            height: 410,
            width: 800,
            modal: true,
            show: 'Transfer',
            hide: 'Transfer',
            draggable: true,
            resizable: true,
            buttons: {
                "Cancel": function() {
                    $(this).dialog("close");
                },
                "Save": function() {
                    var txtnote = document.getElementById("<%=txtNote.ClientID %>").value;

                    $.ajax({
                        type: "POST",
                        url: "newcall.aspx/savenote",
                        data: txtnote,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",                            
                        success: function(msg) {
                            alert(msg);
                        },        
                        error: function(XMLHttpRequest, textStatus, errorThrown) {
                            alert(textStatus);
                        }
                    });

                    $(this).dialog("close");
                }
            }
        }

        );

Code behind method:( At the moment I'm just returning "ok")

Public Function savenote() As String
    Return "ok"
End Function


You need to add the WebMethod attribute, declare the page method as Shared, and match the data you're sending with the method's signature. This is how you should change your server-side method:

<WebMethod()>_
Public Shared Function savenote() As String
  Return "ok"
End Function

You may get away with not changing your data parameter, but probably not since it's invalid JSON. Try changing your data parameter to just {} for now. When you're ready to start passing txtnote in to your server-side method, you'll want to pass that as {txtnote: 'Your note string here'}.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜