2013-08-26 6 views
23

Ich möchte CsharpFunction Code von JavaScript zurückrufen. Ich habe den folgenden Code ausprobiert. Das Problem ist, dass der Compiler unabhängig davon, ob die Bedingung True oder False ist, CsharpFunction aufrufen wird! Wie kann ich das kontrollieren?Wie ruft man eine C# -Funktion von Javascript?

JavaScript-Code:

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

C# -Code hinter:

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

Dank für die Hilfe!

+2

Die Art und Weise Sie tat es ist falsch . Der Code, den Sie geschrieben haben, wird auf dem Server ausgeführt und der Server weiß nicht über Ihre Javascript-Bedingung. Vielleicht möchten Sie AJAX verwenden. – Nilesh

+0

Sorry für halbgebackene Antwort! Nun können Sie Ihre Bedingung mit Formular in versteckten Feldern senden und dann können Sie ihren Wert für den Aufruf dieser Methode überprüfen oder nicht. –

+0

sollten Sie Ajax Library verwenden – Rohit

Antwort

27

Sie Web verwenden können Methode und 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

Ihr Beispiel ruft die C# -Codepage auf, nicht die Funktion. – vico

-4

Sie können nicht. Javascript läuft clientseitig, C# läuft serverseitig.

In der Tat wird Ihr Server alle C# -Code, generieren Javascript ausführen. Das Javascript wird dann im Browser ausgeführt. Wie in den Kommentaren erwähnt, kennt der Compiler Javascript nicht.

Um die Funktionalität auf Ihrem Server aufzurufen, müssen Sie Techniken wie AJAX verwenden, wie in den anderen Antworten erwähnt.

+0

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

+1

@Shyamsundarshah, die AJAX und '__doPostback' beschreibt, die im Grunde Es gibt Möglichkeiten, den Server auszulösen, um etwas auszuführen.Aber in gewisser Weise hast du recht. –

0

Wenn Sie einen Server-Aufruf vom Client ausführen möchten, sollten Sie Ajax verwenden - sehen Sie sich etwa Jquery an und verwenden Sie $ .Ajax() oder $ .getJson(), um die Serverfunktion aufzurufen Art der Rückkehr, nach der Sie suchen oder die Sie ausführen möchten.

1

Serverseitige Funktionen befinden sich auf der Serverseite, clientseitige Funktionen befinden sich auf dem Client. Was Sie tun können, ist, dass Sie versteckte Formularvariable setzen und das Formular absenden müssen, dann können Sie auf der Seite Page_Load den Handler verwenden, um auf den Wert der Variablen zuzugreifen und die Servermethode aufzurufen.

Weitere Daten können here und here

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

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

Hinweis: in JS Funktion bei Aufruf Ihrer CS Seite Funktion .... erste Name des Projekts dann der Namensraum von CS Seite benennen Sie dann funktionieren Name