代码之家  ›  专栏  ›  技术社区  ›  KevDog

从ASP.NET MVC进行异步WebService调用

  •  0
  • KevDog  · 技术社区  · 16 年前

    我(如问题所述)希望进行异步调用,最好使用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);
    }
    

    视图上的字段是:姓名、电子邮件、主题、正文。

    在我尝试这样做的时候,我还没能找到WebMethod。服务参考已经到位了,所以至少我没有搞砸。

    谢谢你的帮助…

    3 回复  |  直到 11 年前
        1
  •  0
  •   mapache    16 年前

    Here 您可以在ASP.NET MVC中找到一个使用ajax调用异步方法的示例,其中包含以下元素

    <% using (Ajax.Form("SendMail", new AjaxOptions { UpdateTargetId = "resultDiv" })) { %>
    
       <!-- Your form elements here... -->
    
    <% } %>
    

    您可以在Controller方法中接收参数并从中调用WebService。

        2
  •  3
  •   Will    16 年前

    这不是你问题的答案,而是一个警告。我看着这个方法,想,“嗯,我想知道ASP.NET是否关心对这个Web方法的调用是来自您的站点还是其他地方?”一个快速的谷歌搜索让我相信没有任何检查,以确保一些灌水不使用你的网络方法为他自己的恶意愿望。( here's a blog post talking about this )

    所以,在你开始工作之前,你可能会想办法防止有人劫持你的webmethod给我发伟哥邮件。因为如果我从你的网站上收到伟哥的邮件,我不会很高兴和你在一起。

        3
  •  -3
  •   Matthew    16 年前

    根据msdn库

    为了让Web服务 从脚本访问,它必须是 .asmx Web服务,其Web服务 班级是合格的 脚本服务属性。 要从中调用的单个方法 脚本必须用限定符 WebMethodAttribute属性。

    看见 http://msdn.microsoft.com/en-ca/library/bb398998.aspx