Mittels JS eine C# Methode aufrufen

WaZZkeSS

Erfahrenes Mitglied
Hallo!

Ich möchte über in einer ASPX-Seite folgendes Realisieren.

-) Benutzer befindet sich auf einer beliebigen Seite (bsp. Bestellseite).
-) Benutzer klickt auf "Senden".
-) Mittles JavaScript (Response.Write("<script language =... usw. und so fort ...") wird ein Confirm-Fenster gezeigt ob der Vorgang fortgesetzt werden soll.
-) Prüfen was Benutzer gewählt hat (ConfirmResult: OK = true, Abbrechen = false).
-) Wenn true dann C# Methode aufrufen und Code ausführen.

So, mein Problem: Wie kann ich den Vorgang realisieren ohne Windows.Forms namespace.

Folgendes wäre als LETZTE ALTERNATIVE möglich:
Eine weiter ascx oder aspx Seite mit einem Label welcher den anzuzeigenden Text beim Aufrufen bekommt, erstellen und diesen verwenden. Doch das wäre einbisschen unprofessionell bzw. unschön.

Flls jemand eine Lösung bzw. eine Idee dazu hat wäre ich sehr sehr dankbar.

Lg WaZZkeSS
 
Was hat Windows Forms mit einer ASP.NET-Anwendung zu tun?

Du musst ein Postback auslösen. Diesem Postback kannst du Parameter mitgeben, welche von deiner Seite ausgewertet werden, um somit die gewünschte Methode aufrufen zu können.
 
Ich denke das, was du suchst, ist das ICallbackEventHandler-Interface oder, finde ich die elegantere Lösung, du guckst dir mal an wie man WCF-Services mit Javascript anspricht. Das könnte ungefähr so aussehen (Template heißt glaube ich Ajax-enabled WCF-Service oder so):
CodeBehind:
Code:
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class MyService
    {   

        [OperationContract]
        public void doSomething()
        { /* CODE */ }
}

Dann musst du den Service dem ScriptManager bekannt machen der dir dann das JavaScript zum aufruf bereit stellt. Nutzen kannst du es dann sehr komfortabel so:

Code:
<input type="button" onclick="if(confirm('wirklich')) {MyService.doSomething(); } return false;" ...>
 

Neue Beiträge

Zurück