2016-03-25 25 views
-1

私はいくつかの条件をチェックするAjaxメソッドを持っています。条件が満たされなければ、警告ボックスを介してメッセージを表示しています。しかし、私はいくつかの他の部分を行うには、aspxページで関数を呼び出す必要があります。.jsファイルのコードビハインドで関数/メソッドを呼び出す方法は?

私のサンプルコード:

function myWebService(param1, param2, param3) { 
    $.ajax({ 
     type: "POST", 
     url: "/WebServices/WebServiceMethod", 
     data: JSON.stringify({ param1: param1, param2: param2, param3: param3 }), 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     async: true, 
     success: function (msg) { 
      if (msg.d) { 
       var obj = function callbackfunction() { 
        myWebService(param1, param2, param3); 
       } 

       window.setTimeout(obj, 10000); 
      } 
     else { 
        alert("WebMethod checked the condition and it was failed."); 
        // I need to call method in code behind file from here. 
       } 
      } 
     } 

     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      alert("error"); 
     } 
    }); 
} 

私は別のWebMethod属性とAjaxコールを通じて実現しようとしましたが、問題は、私は5異なるページからmyWebServiceメソッドの上に呼び出していると私はコード - を呼び出す必要があります(すべてのaspxページには同じ名前の関数がありますが、内側のコードは各ページと異なります)。この場合、URLを設定する方法はわかりません。

上記の関数からコードビハインドファイルのメソッドを呼び出す方法はありますか?

+0

私はあなたの問題は、単に動的なURLを生成することだと思うし、次に基本的に、あなたの静的コードビハインドメソッドに属性を追加する必要が

電話を掛ける。 –

+0

__doPostBack()を使用できます。 – Ripun

+0

何とか私は動的URLを生成する必要があります。あなたは私にどのように手助けすることができますか? @Reddy – Knowledge2Share

答えて

2

System.Web.Services.WebMethodを使用すると、jQueryが(PostBackを使用せずに)サーバー側のASP.NETメソッドを呼び出すことができます。このarticleには良いステップスルーガイドがあります。

[WebMethod] 
public static String MyMethod() 
{ 
    return "My Method from code-behind" 
} 

そして、あなたはJavaScript:

function myWebService(param1, param2, param3) { 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/MyMethod", // will make AJAX call to your code-behind code 
     // rest of you code... 
    }); 
} 
+0

しかし、私のURLはページごとに異なります。私は同じメソッド(内部コードは異なるかもしれない)を、Webサービスや他の方法で5-6ページに存在するものと呼ぶ必要があります – Knowledge2Share

関連する問題