2008-12-03 125 views
0

我会(如问题状态)喜欢进行异步调用,最好使用ASP.net AJAX。从ASP.Net进行异步WebService调用MVC

用于将WebMethod的代码如下所示:

[WebMethod] 
public void SendMail(string name, string email, string subject, string body) 
{ 
    MailMessage toSend = new MailMessage(email, [email protected], subject, body); 
    var smtp = new SmtpClient(); 
    smtp.Send(toSend); 
} 

视图上的字段,这并不奇怪:姓名,电子邮件,主题,正文。

在我试图做到这一点时,我一直无法进入WebMethod。该服务的参考资料已到位,所以至少我没有搞砸了。

感谢您的帮助...

回答

0

Here你可以找到调用与AJAX异步方法在ASP.NET MVC与元素,如

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

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

<% } %> 

您可以在控制器方法收到PARAMS,并从那里调用Web服务的一个例子。

3

这不是您的问题的答案,而是一个警告。我正在研究这种方法并思考:“嗯,我不知道ASP.NET是否在意这个Web方法的调用是来自您的网站还是其他地方?”一个快速的谷歌搜索引导我相信,没有任何检查,以确保一些冲洗不使用您的网络方法为自己的恶意愿望(here's a blog post talking about this)。

因此,在你做这个工作之前,你可能想要考虑如何防止某人劫持你的webmethod给我发送伟哥电子邮件。因为如果我从你的网站收到伟哥邮件,我不会对你感到高兴。

+0

嗯,我还没有考虑,感谢您的抬头。你有什么建议吗? – KevDog 2008-12-03 21:54:46

+0

我仔细看了一下你建立的链接。该调用不在页面后面的代码中,而是在单独的Web服务的.asmx文件中。我会做更多的阅读,看看是否适用相同的警告。 – KevDog 2008-12-03 22:25:51

-3

根据MSDN库

为了使Web服务从脚本访问 ,它必须是一个 的.asmx Web服务,其Web服务 类是有资格与 ScriptServiceAttribute属性。 要从 脚本调用的各个方法必须使用 WebMethodAttribute属性进行限定。

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