Herstellung eines Asynchronous WebService Anruf von ASP.Net MVC
-
19-08-2019 - |
Frage
Ich würde (wie die Frage Staaten) wie einen asynchronen Aufruf zu machen, vorzugsweise ASP.net AJAX verwenden.
Der Code für das WebMethod sieht wie folgt aus:
[WebMethod]
public void SendMail(string name, string email, string subject, string body)
{
MailMessage toSend = new MailMessage(email, address@domain.com, subject, body);
var smtp = new SmtpClient();
smtp.Send(toSend);
}
Die Felder auf der Ansicht sind, nicht überraschend. Name, E-Mail, Betreff,
In meinen Versuchen, dies zu tun, habe ich nicht in der Lage gewesen, auf die WebMethod zu bekommen. Der Service Referenz ist vorhanden, so zumindest habe ich nicht, dass vermasseln.
Danke für die Hilfe ...
Lösung
Hier Sie ein Beispiel für den Aufruf asynchrone Methoden finden mit AJAX in ASP.NET MVC mit Elementen wie
<% using (Ajax.Form("SendMail", new AjaxOptions { UpdateTargetId = "resultDiv" })) { %>
<!-- Your form elements here... -->
<% } %>
Sie können die params in der Controller-Methode empfangen und den Webservice von dort anrufen.
Andere Tipps
Das ist keine Antwort auf Ihre Frage, aber eine Warnung. Ich war bei dieser Methode suchen und denken: „hmm, ich frage mich, ob ASP.NET kümmert sich, wenn ein Aufruf dieser Web-Methode von Ihrer Website kommt oder woanders?“ Eine schnelle Google-Suche führt mich zu glauben, dass es nicht einige Duschen machen Überprüfung sicher, dass Ihre Web-Methoden für seine eigenen böswilligen Wünsche nicht mit ( hier ist eine Blog-Post im Gespräch über diesen ).
Also, bevor Sie diese Arbeit bekommen, können Sie über die Möglichkeiten, zu glauben, dass jemand, um zu verhindern Hijacking Ihre Webmethod mir Viagra E-Mails zu senden. Denn wenn ich eine Viagra E-Mail von Ihrer Website erhalten, werde ich sein, nicht sehr glücklich mit dir.
Nach der MSDN Library
Damit ein Web-Service sein von Skript zugegriffen wird, muss es eine sein .asmx Web-Dienst, dessen Web-Service Klasse qualifiziert ist mit der ScriptServiceAttribute Attribut. Die einzelnen Methoden werden genannt von Skript muss mit der qualifiziert werden WebMethodAttribute Attribut.
finden Sie unter http://msdn.microsoft.com/en-ca/ Bibliothek / bb398998.aspx