使用javascript在HTML页面中调用C#webservice函数

使用javascript在HTML页面中调用C#webservice函数,javascript,html,c#-4.0,Javascript,Html,C# 4.0,如何使用Javascript在HTML页面中调用C#webservice函数?我一直在尝试以下代码,但我的Javascript函数甚至没有与Web服务通信 Javascript函数: <script language="JavaScript" type="text/javascript"> var iCallID; function getEmail() { iCallID=document.getElementById("email").va

如何使用Javascript在HTML页面中调用C#webservice函数?我一直在尝试以下代码,但我的Javascript函数甚至没有与Web服务通信

Javascript函数:

<script language="JavaScript" type="text/javascript">
    var iCallID;
    function getEmail()
    {
        iCallID=document.getElementById("email").value;
        service.useService("http://localhost:1551/MyWebSite/MyWebService.asmx?wsdl", "GetDateTimeService");
        alert(iCallID);

        service.GetDateTimeService.callService("sendEmail",iCallID);
        alert(event.result.value);
    }
</script>

伊卡利德变种;
函数getEmail()
{
iCallID=document.getElementById(“email”).value;
service.useService(“http://localhost:1551/MyWebSite/MyWebService.asmx?wsdl“,“GetDateTimeService”);
警报(iCallID);
service.GetDateTimeService.callService(“sendmail”,iCallID);
警报(事件、结果、值);
}
C#Webservices

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Net.Mail;
using System.Net;

/// <summary>
/// Summary description for MyWebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class MyWebService : System.Web.Services.WebService
{
    public MyWebService()
    {
        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string sendEmail(string EmailID)
    {
        SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
        client.Credentials = new NetworkCredential("some-email@gmail.com", "password");
        client.EnableSsl = true;
        MailMessage mailmsg = new MailMessage();
        mailmsg.From = new MailAddress(EmailID);
        mailmsg.To.Add("some-email@gmail.com");
        mailmsg.Subject = "test";
        mailmsg.Body = "test mail";

        client.Send(mailmsg);

        return "Email Sent Successfully";
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Services;
使用System.Net.Mail;
Net系统;
/// 
///MyWebService的摘要说明
/// 
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
//[System.Web.Script.Services.ScriptService]
公共类MyWebService:System.Web.Services.WebService
{
公共MyWebService()
{
//如果使用设计的组件,请取消注释以下行
//初始化组件();
}
[网络方法]
公共字符串sendmail(字符串EmailID)
{
SmtpClient=newsmtpclient(“smtp.gmail.com”,587);
client.Credentials=新网络凭据(“某些-email@gmail.com“,”密码“);
client.enablesl=true;
MailMessage mailmsg=新邮件();
mailmsg.From=新邮件地址(EmailID);
mailmsg.To.Add(“一些-email@gmail.com");
mailmsg.Subject=“测试”;
mailmsg.Body=“测试邮件”;
client.Send(mailmsg);
返回“电子邮件发送成功”;
}
}
我就是这样做的:

在页面底部添加一个href和一些js:

<a href="javascript:SendEmailJs()">Send mail!</a>
//Other logic
<script type="text/javascript>
function SendEmailJs(){
    var url = '@(Url.Action("SendEmail"))';
    var emailId = document.getElementById("email").value;
    url += "/?EmailID=" + emailId;
    $.get(url, function(data){
        alert(data.tostring);
    }
}
</script>

//其他逻辑

您采取了哪些步骤来调试问题?在VS 2010中进行调试…通过放置警报弹出框,我正在一步一步地进行检查..是否有任何方法可以准确地测试哪些部分出现故障?例如,也许你可以让web服务写入文件或标准输出,这样你就知道它是否工作,但不发送电子邮件。不,我没有使用jquery…我只是在努力调用web服务方法..是的,我的web设备工作得很好…@puneeth-仅供参考,整个序列向下表决的事情?是的,StackOverflow有一个系统可以检测到这一点,并和做这件事的人打交道。