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 ...

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top