복붙노트

[JQUERY] ASP.NET 웹폼에서 jQuery를 가진 '의 WebMethod'를 호출

JQUERY

ASP.NET 웹폼에서 jQuery를 가진 '의 WebMethod'를 호출

해결법


  1. 1.당신이 당신의 ScriptManager 요소에 사용할 페이지 방법이 있는지 확인 :

    당신이 당신의 ScriptManager 요소에 사용할 페이지 방법이 있는지 확인 :

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

    당신이 끝까지 시간이 결코 수의 온 클릭 핸들러 내부에 다른 페이지가 수행하는 전체 다시 게시하여 AJAX 호출을 거짓을 반환하여 버튼의 기본 동작을 취소했다고. 여기에 전체 작업의 예는 다음과 같습니다

    <%@ Page Language="C#" %>
    <script type="text/c#" runat="server">
    [System.Web.Services.WebMethod]
    public static string search()
    {
        return "worked";
    }
    </script>
    
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <asp:ScriptManager ID="scm" runat="server" EnablePageMethods="true" />
            <button id="btnSearch" onclick="search(); return false;" >Search</button>
        </form>
    
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
        <script type="text/javascript">
            function search() {
                $.ajax({
                    type: 'POST',
                    url: '<%= ResolveUrl("~/default.aspx/search") %>',
                    data: '{ }',
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (msg) {
                        alert(msg.d)
                    }
                });
            }
        </script>
    </body>
    </html>
    

    또 다른 가능성은 겸손 클릭 처리기를 구독 할 수 있습니다 :

    <button id="btnSearch">Search</button>
    

    다음 별도의 자바 스크립트 파일 내부 :

    $('#btnSearch').click(function() {
        $.ajax({
            type: 'POST',
            url: '<%= ResolveUrl("~/default.aspx/search") %>',
            data: '{ }',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (msg) {
                alert(msg.d)
            }
        });
        return false;
    });
    

    당신은 또한 ASP.NET이 아니라 제대로에 때 ResolveUrl 방법의 사용으로 페이지 메서드에 URL을 생성하는 대신에 그것을 하드 코딩으로로 전체 응답을 포장하는 데 사용하는 성공 콜백 내부의 msg.d 속성의 사용법을 알 수 있습니다.


  2. 2.더 최적화 된 호출이 될 것입니다

    더 최적화 된 호출이 될 것입니다

    function search() {
        $.ajax({
            type: "POST",
            url: '<%= ResolveUrl("~/ProcessAudit/req_brws.aspx/search") %>',
            data: "{}",
            contentType: "application/json",
            success: function (msg) {
                msg = msg.hasOwnProperty("d") ? msg.d : msg;
                alert(msg);
            }
        });
    }
    

    필요는 ASP를 제공 없습니다 : 스크립트 관리자를 전혀.

    자원 : http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/


  3. 3.현재 버튼은 전체 포스트 백을 일으키는 것입니다. 간단하게이 문제를 피하기 위해 버튼 유형 = "버튼"을 추가합니다.

    현재 버튼은 전체 포스트 백을 일으키는 것입니다. 간단하게이 문제를 피하기 위해 버튼 유형 = "버튼"을 추가합니다.

     <button id = "btnSearch" type="button" onclick = "search()" >Search</button>
    

    I -Shazzam


  4. 4.어떻게 JQuery와 AJAX를 사용하여 ASP.Net 웹 메소드를 구현하는 방법?

    어떻게 JQuery와 AJAX를 사용하여 ASP.Net 웹 메소드를 구현하는 방법?

    HTML 페이지 :

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    
        <title></title>
        <script src="js/jquery.min.js"></script>
        <script>
            function SubmitData() {
    
                var name = 'Ram';
                var gender = 'Male';
                var age = '30';           
    
                $.ajax({
                    type: "POST",
                    url: "ajaxcall.aspx/SaveData",
                    data: '{"name":"' + name + '", "gender":"' + gender + '", "age":"' + age + '"}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    beforeSend: function () {
                        $('#loader').show();
                    },
                    success: function (data) {
    
                        alert(data.d);
                        $('#loader').hide();
                    },
                    error: function (msg) {
                        //alert('3');
                        msg = "There is an error";
                        alert(msg);
                        $('#loader').hide();
                    }
                });
    
            }
        </script>
    </head>
    <body>
        <div id="loader" style="display: none;">
            <img src="ajax-loader.gif" />
        </div>
        <a href="#" onclick="SubmitData();">Submit</a>
    </body>
    </html>
    

    코드 숨김

    [WebMethod]
        public static string SaveData(string name, string gender, string age) {
        try {
            return "OK";
        } catch (Exception ex) {
            return ex.Message;
        } finally { }
    }
    

    자원: http://www.sharepointcafe.net/2016/10/how-to-call-aspnet-web-method-using-jquery-ajax.html

  5. from https://stackoverflow.com/questions/6928533/calling-a-webmethod-with-jquery-in-asp-net-webforms by cc-by-sa and MIT license