문제

나는 (질문에 따라) 비동기 호출을 좋아하고 바람직하게는 ASP.NET AJAX를 사용하고 싶다.

WebMethod의 코드는 다음과 같습니다.

[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);
}

시야의 필드는 놀랍게도 이름, 이메일, 주제, 신체입니다.

이것을하려는 시도에서 나는 웹 메드에 도달 할 수 없었습니다. 서비스 참조가 제자리에 있으므로 적어도 나는 그것을 망치지 않았습니다.

도와 주셔서 감사합니다...

도움이 되었습니까?

해결책

여기 ASP.NET MVC에서 AJAX를 사용하여 비동기 메소드를 호출하는 예를 찾을 수 있습니다.

<% using (Ajax.Form("SendMail", new AjaxOptions { UpdateTargetId = "resultDiv" })) { %>

   <!-- Your form elements here... -->

<% } %>

컨트롤러 메소드에서 매개 변수를 수신하고 거기에서 웹 서비스를 호출 할 수 있습니다.

다른 팁

이것은 귀하의 질문에 대한 답이 아니라 경고입니다. 이 방법을보고 있었고 "흠, ASP.NET 이이 웹 메소드에 대한 전화가 귀하의 사이트 나 다른 곳에서 나오면 관심이 있는지 궁금합니다." 빠른 Google 검색으로 인해 일부 Douche가 자신의 악의적 인 욕구를 위해 웹 방법을 사용하지 않도록 확인하는 것이 없다고 믿습니다.다음은 이것에 대해 이야기하는 블로그 게시물입니다).

따라서이 작업을 수행하기 전에 누군가가 웹 메드를 납치하여 비아그라 이메일을 보내지 못하게하는 방법에 대해 생각할 수 있습니다. 귀하의 웹 사이트에서 비아그라 이메일을 받으면 그리 행복하지 않을 것입니다.

MSDN 도서관에 따르면

스크립트에서 웹 서비스에 액세스하려면 웹 서비스 클래스가 ScriptServiceAttribute 속성으로 자격이있는 .AMSX 웹 서비스 여야합니다. 스크립트에서 호출되는 개별 방법은 WebMethodAttribute 속성으로 자격이 있어야합니다.

보다 http://msdn.microsoft.com/en-ca/library/bb398998.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top