Rufen ASP.NET Web-API von code-behind
Wie würde ich Sie nennen ASP.NET Web-API direkt aus dem code-behind? Oder sollte ich anrufen, meine javascript-Funktion aufruft, die getJSON Methode aus dem code-behind?
Normalerweise habe ich etwas wie:
function createFile() {
$.getJSON("api/file/createfile",
function (data) {
$("#Result").append('Success!');
});
}
Alle Zeiger geschätzt. TIA.
*Ich bin mit WebForms.
Was meinst du mit "code-behind"?
Sagen, ich habe eine asp:button. Auf click-Ereignis(server-side - /code-behind), möchte ich ein paar Sachen und dann rufen meine Web-API-Aktion (createfile). Hoffe ich komme klar.
Pls überprüfen mein code-Beispiel. Vielleicht ein wenig naiv und einfach, aber es ist nur für Sie 2 bekommen die Idee.
Sagen, ich habe eine asp:button. Auf click-Ereignis(server-side - /code-behind), möchte ich ein paar Sachen und dann rufen meine Web-API-Aktion (createfile). Hoffe ich komme klar.
Pls überprüfen mein code-Beispiel. Vielleicht ein wenig naiv und einfach, aber es ist nur für Sie 2 bekommen die Idee.
InformationsquelleAutor Rivka | 2012-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie müssen aufrufen der web-service selbst, können Sie versuchen, mit
HttpClient
wie von Henrik Nielsen.Aktualisiert HTTPClient-Proben
Ein einfaches Beispiel:
Wenn ich versuche zu konvertieren, das auf vb.net requestTask.Ergebnis nicht kompilieren, zu sagen "das Ergebnis ist kein member von system.threading.Aufgaben.Aufgabe" aber in c# sein gefunden in httpresponsemessage. ist diese Eigenschaft nicht in vb.net ? ich benutzte die telerek-Konvertierung Website, um die Konvertierung zu tun
InformationsquelleAutor Eric King
Sollten Sie umgestalten der Logik in ein separates backend-Klasse, und rufen Sie es direkt aus youir code-behind und aus der Web-API-Aktion.
Aufrufen der eigenen Klasse direkt im code-behind.
InformationsquelleAutor SLaks
Empfohlen, die in vielen software-Architektur-Bücher ist, dass Sie sollten nicht jede business-Logik in Ihrer (API) - controller-code. Vorausgesetzt, Sie implementieren es der richtige Weg ist, zum Beispiel, dass der Controller-code, die derzeit greift auf die business-Logik über eine Service-Klasse oder an der Fassade, mein Vorschlag ist, dass Sie die Wiederverwendung der gleichen Service-Klasse/Fassade für diesen Zweck, anstatt durch die 'Haustür' (so, indem Sie die JSON-Aufruf aus dem code behind)
Für Grund-und naieve Beispiel:
AppService-Klasse kapselt Ihre business-Logik (und macht es live auf einem anderen layer) und macht es einfacher für Sie, um Zugriff auf Ihre Logik:
Stimmt, mein Englisch ist nicht perfekt, die "Richtige" war nicht das richtige Wort.
Vielen Dank für die Bereitstellung ein Beispiel. Ich glaube, ich verstehe, was du sagst über die Klassen, aber meine Frage ist, auf die tatsächliche Methode, Aufruf von CreateFile() in der WebAPI. Wie sollte ich anrufen, die von einem server-side-Events in einer Web Forms-Anwendung? Was ist der beste Ansatz?
Es spielt keine Rolle, wenn Sie mit einer WebAPI oder ein Webformular. Im Falle von WebForm ist, Sie haben einfach die gleichen AppService-Aufruf im code behind (zum Beispiel innerhalb eines OnClick -)
InformationsquelleAutor S P