2011-12-20 20 views
0

Javascriptを使用してHTMLページでC#webservice関数を呼び出すにはどうすればよいですか?私は次のコードで試していますが、私のJavascript関数はWebサービスと通信していません。JavaScriptを使用してHTMLページのC#webservice関数を呼び出す

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> 

C#ウェブサービス

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("[email protected]", "password"); 
     client.EnableSsl = true; 
     MailMessage mailmsg = new MailMessage(); 
     mailmsg.From = new MailAddress(EmailID); 
     mailmsg.To.Add("[email protected]"); 
     mailmsg.Subject = "test"; 
     mailmsg.Body = "test mail"; 

     client.Send(mailmsg); 

     return "Email Sent Successfully"; 
    } 
} 
+1

問題のデバッグにはどのような手順を実行しましたか? – Arj

+0

VS 2010でやっています...警報ポップアップボックスを置くことによって、私はそれを段階的にチェックしています。 –

+0

何が失敗しているかを正確にテストする方法はありますか?たとえば、Webサービスがファイルや標準出力に書き込むようにして、それが動作していても電子メールを送信していないかどうかを知ることができます。 – Arj

答えて

0

これは私がそれを行う方法です。

は、ページへの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> 
+0

すでに解決策はありますか?私は同じ問題を抱えています。 – Matheno

関連する問題