[英]Call ASP.NET web service method from JavaScript
我有网络服务:
[WebMethod]
public void SendMail(string _name, string _email, string _message)
{
//Create Mail Message Object with content that you want to send with mail.
MailMessage MyMailMessage = new MailMessage("gglebati@example.com", "gglebati@example.com", "This is the mail subject", "Just wanted to say Hello");
MyMailMessage.IsBodyHtml = false;
//Proper Authentication Details need to be passed when sending email from gmail
NetworkCredential mailAuthentication = new NetworkCredential("myxxxxx@gmail.com", "xxxxxxxxx");
//Smtp Mail server of Gmail is "smpt.gmail.com" and it uses port no. 587
//For different server like yahoo this details changes and you can
//get it from respective server.
SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
//Enable SSL
mailClient.EnableSsl = true;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = mailAuthentication;
mailClient.Send(MyMailMessage);
}
而且我有一个html页面。 我如何从我的HTML页面调用此函数? (此功能必须将消息发送到电子邮件)
使用jQuery库。 它使ajax成为一个蛋糕。 然后按照以下项目操作:
ScriptService
属性(此属性意味着您可以从JavaScript调用服务) 将项目发送到您的Web服务方法
$('#buttonId').click(function(){ // Validating input $.ajax({ type: 'POST', url: '/your-web-service-path.asmx/your-method-name', data: {} dataType: 'json', contentType: 'application/json; charset=utf-8', success: function(r){}, error: function(e){} }); });
只是请注意,您必须使用参数制作一个JSON对象,并且JSON属性的名称应与Web服务参数的名称匹配。 还请注意,作为传递给ajax调用成功回调的rd
对象,您可以使用Web服务的返回值。
您必须通过cs代码页传递三个参数,方法是像这样调用:
service.SendMail(name, email, message);
如果是aspx页面,则可以添加具有EnablePageMethods =“ true”属性的ScriptManager,然后调用PageMethods.sendMail(name,email,message,onSuccess,onFail);
也许您想看看jQuery的ajax功能。
您需要做一些非常重要的事情:将ScriptService属性添加到该类,以便可以从Javascript调用它,如以下示例所示:
[ScriptService]
public class SimpleWebService : System.Web.Services.WebService
{
// ...
}
http://msdn.microsoft.com/zh-CN/library/system.web.script.services.scriptserviceattribute.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.