4 Stimmen

Aufrufen von C#-Funktion durch Javascript (ohne Json)

Ich habe eine Funktion namens "callfunction()" in JavaScript (Mypage.aspx). Diese Funktion sollte eine andere Funktion "func()" in C# (Mypage.aspx.cs) aufrufen.

Etwas Ähnliches wie dies:

(in Mypage.aspx)

 function callfunction()

 {

  // ich muss hier die func() Funktion aufrufen .....

 }

(in der Datei Mypage.aspx.cs)

 public void func()

 {

 // Hier kommt mein Code hin

 }

Ich habe viel recherchiert, und bis jetzt bin ich zu 2 Schlussfolgerungen gekommen: Die erste war, Json zu verwenden, aber meine Vorgesetzten haben eindeutig gesagt, dass sie nicht wollen, dass ich das tue. Die zweite war, dass ich nicht einfach so machen kann, wie ich will, wegen des Client-Server-Aspnet-Protokolls.

Bitte geben Sie mir jeden Tipp, wie ich das machen soll, ich werde langsam verzweifelt

6voto

iJade Punkte 22324

Ok....Versuchen Sie, Seitenmethoden zu verwenden.

Fügen Sie zuerst einen Skript-Manager auf Ihrer aspx-Seite hinzu

Gehen Sie dann auf Ihre aspx.cs-Seite und deklarieren Sie eine Funktion wie folgt

[System.Web.Services.WebMethod]
    public static string ValidateUser(string emailId, string password)
    {
        //Ihr Logikcode
        return returnString;
    }

Rufen Sie dann den C#-Methode von Ihrem JavaScript aus auf

 PageMethods.ValidateUser(email, password, CallSuccess_Login, CallFailed_Login);

Erstellen Sie auch in Ihrem JavaScript 2 Rückruffunktionen CallSuccess_Login und CallFailed_Login

Ich hoffe, es hilft

3voto

speti43 Punkte 2748

Wenn es sich um ein Webforms-Projekt (nicht MVC) handelt und Sie kein AJAX verwenden möchten, können Sie __doPostBack verwenden.

 function callfunction(parameter)
 {
     __doPostBack('func', parameter)
 }

C#:

public void Page_Load(object sender, EventArgs e)
{
  string parameter = Request["__EVENTARGUMENT"]; // parameter
  var senderObject = Request["__EVENTTARGET"]; // func
  if(senderObject == "func")
  {
     //rufen Sie hier Ihre Funktion auf oder schreiben Sie die Implementierung
  }
}

0voto

Yogesh Punkte 150

Unten finden Sie die verfügbaren Optionen:

  1. Wenn Sie asp.net verwenden, verwenden Sie Ajax-Tools, um dies zu erstellen

  2. Wenn Sie das Ajax-Toolkit nicht verwenden möchten, verwenden Sie JavaScript __doPostBack

  3. Oder eine andere Option ist das Schreiben einer serverseitigen Funktion im Web Service und das Aufrufen der Webmethode mit JavaScript

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X