2013-08-26 44 views
23

JavaScriptからCsharpFunctionコードバックに電話したいと思います。私は以下のコードを試しました。問題は、条件がTrueFalseかどうかにかかわらず、コンパイラはとにかくCsharpFunctionを呼び出します。私はそれをどうやってコントロールできるの?javascriptからC#関数を呼び出す方法は?

JavaScriptコード:背後

if (Javascriptcondition > 0) { 
    <%CsharpFunction();%> 
} 

C#コード:助けを

protected void CsharpFunction() 
{ 
    // Notification.show(); 
} 

ありがとう!

+2

機能。あなたが書いたコードはサーバー上で実行され、サーバーはJavaScriptの状態を知らない。あなたはAJAXを使いたいかもしれません。 – Nilesh

+0

半分焼いた答えに申し訳ありません!あなたは隠れたフィールドでフォームを使って条件を送信することができ、そのメソッドを呼び出すための値を確認することができます。 –

+0

あなたはAjaxライブラリを使用する必要があります – Rohit

答えて

27
は、Webを使用することはでき

メソッドとAjax

<script type="text/javascript">    //Default.aspx 
     function DeleteKartItems() {  
       $.ajax({ 
       type: "POST", 
       url: 'Default.aspx/DeleteItem', 
       data: "", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        $("#divResult").html("success"); 
       }, 
       error: function (e) { 
        $("#divResult").html("Something Wrong."); 
       } 
      }); 
     } 

[WebMethod]         //Default.aspx.cs 
    public static void DeleteItem() 
    { 
    //Your Logic 
    } 
+4

この例では、関数ではなくc#コードページを呼び出しています。 – vico

-4

できません。 Javascriptはクライアントサイドを実行し、C#はサーバサイドを実行します。

実際にサーバーではすべてのC#コードが生成され、 Javascriptが生成されます。 Javascript thenは、ブラウザで実行されます。コメントで述べたように、コンパイラはJavascriptを知らない。

サーバーの機能を呼び出すには、AJAXなどのテクニックを使用する必要があります(他の回答と同様)。

+0

http://www.daniweb.com/web-development/aspnet/threads/31065/calling-cfunction-through-javascript-in-asp.net here –

+1

@ShyamsundarshahはAJAXと '__doPostback'を記述しています。基本的にはサーバーを起動して何かを実行させる方法です。しかし、ある意味では、あなたは正しいです。 –

0

クライアントからサーバーコールを行う場合は、Ajaxを使用する必要があります.Jqueryのようなものを見て、$ .Ajax()または$ .getJson()を使用してサーバー機能を呼び出します。あなたがしているリターンの種類や実行したいアクション。

1

サーバー側の機能はサーバー側にあり、クライアント側の機能はクライアント上にあります。 あなたができることは、隠されたフォーム変数を設定してフォームを送信しなければならない場合、Page_Loadハンドラを使用して、変数の値にアクセスしてサーバメソッドを呼び出すことができます。

詳細情報here と、これは役立つかもしれないhere

1
.CS File  
    namespace Csharp 
    { 
     public void CsharpFunction() 
     { 
     //Code; 
     } 
    } 

    JS code: 
    function JSFunction() { 
      <%#ProjectName.Csharp.CsharpFunction()%> ; 
    } 

注:JS関数でCSページの名前空間の名前、その後....プロジェクトの最初の名前を自分のCSページ機能を呼び出すには、あなたがそれをやった方法が間違っている名前

関連する問題