Frage

Ich arbeite mit ASP.net.
Ich versuche, eine Methode aufzurufen, die für die Seite auf der Basisklasse existiert ich verwende. Ich mag diese Methode via Javascript anrufen und benötigen kein Rendering von ASP.net behandelt werden.
Was wäre der einfachste Weg, dies zu erreichen.
Ich habe bei Pagemethods sah, die aus irgendeinem Grund nicht funktioniert, und festgestellt, dass viele andere Menschen mit ihnen Probleme gehabt haben.

War es hilfreich?

Lösung

Es hängt davon ab, was die Methode beruht auf, aber vorausgesetzt, es ist eine statische Methode ist, oder dass es nicht auf der Seite Lifecycle angewiesen zu arbeiten, könnten Sie einen Webservice-Endpunkt aussetzen und schlugen, dass mit je nachdem, was Javascript Mechanismus rufen Sie möchten verwenden.

Andere Tipps

Welche Bibliothek verwenden Sie Ajax Anrufe zu tätigen? Wenn Sie JQuery verwenden, dann können Sie statische Methoden erstellen und auf Ihrer Seite aufrufen. Lassen Sie uns wissen, wenn Sie weitere Hilfe benötigen!

Wie Thunder3 schlägt vor, setzen einen Web-Service. Sobald Sie dies getan haben, können Sie den Webservice mit dem Scriptmanager (oder Script) registrieren, die ein JavaScript-Wrapper erzeugt werden verursacht. Dieser Wrapper gibt Ihnen eine gute Schnittstelle zum Aufruf.

auf dem Punkt erweitern gemacht von @Azam , wenn Sie nicht die HTML-Datei auf der Seite machen wollen können Sie den Rückgabetyp auf etwas anderes wie xml gesetzt und eine response.write tun, wie ich in dem folgenden Code haben. Während der GET möchte ich die html zurück zu senden, aber während des POST senden ich einige XML über den Draht zurück.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Cache.SetCacheability(HttpCacheability.NoCache)
        If Request.HttpMethod = "GET" Then
            'do some work and return the rendered html
        ElseIf Request.HttpMethod = "POST" Then
            'do some work and return xml
            Response.ContentType = "text/xml"
            Response.Write("<data></data>")
            Response.End()
        Else
            Response.StatusCode = 404
            Response.End()
        End If
    End Sub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top