2013-05-29 96 views
1

我必須從Java腳本調用一個C#函數。爲此,我使用ajax後調用C#函數的請求。但我的C#函數實際上並沒有從ajax腳本調用。我不知道什麼是不是調用C#函數的原因?ajax後不能正常工作與C#

這是我的Ajax代碼:

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script> 
     <script type="text/javascript"> 

     $(function() { 
      $("#btnSend").click(function() { 
       var image = document.getElementById("myCanvas").toDataURL("image/png"); 
       image = image.replace('data:image/png;base64,', ''); 

       $.ajax({ 
        type: 'POST', 
        url: 'Default.aspx/UploadImage', 
        data: '{ "imageData" : "' + image + '" }', 
        contentType: 'application/json; charset=utf-8', 
        dataType: 'json', 
        success: function (msg) { 
         alert('Image sent!');      
        } 
       }); 
      }); 
     }); 
    </script> 

這是我的C#功能:

namespace sample 
{ 
    [ScriptService] 
    public partial class _Default : System.Web.UI.Page 
    { 
     [WebMethod()] 
     public static void UploadImage(string imageData) 
     { 

      FileStream fs = new FileStream("D:\\vs-2010projects\\delete_sample\\delete_sample\\myimages\\image.png", FileMode.Create); 
      BinaryWriter bw = new BinaryWriter(fs); 

      byte[] data = Convert.FromBase64String(imageData); 

      bw.Write(data); 
      bw.Close(); 
     } 
    } 
    } 
+2

Web控制檯說什麼? –

+0

Web控制檯(Chrome)表示POST http://localhost/delete_sample/Default.aspx/UploadImage 500(內部服務器錯誤)jquery-1.6.1.min.js:18 發送jquery-1.6.1.min.js :18 f.extend.ajax jquery-1.6.1.min.js:18 (匿名函數)Default.aspx:25 f.event.handle jquery-1.6.1.min.js:17 i.handle .k jquery-1.6.1.min.js:16 – Saravanan

+0

好吧,你去了,看起來功能有些問題。你調試了,是否設置了斷點? –

回答

1

錯誤爲[ArgumentException的:未知的Web方法UploadImage。參數名稱:methodName]。

<%@ Page Language =「C#」Inherits =「_ Default」CodeFile =「Default.aspx.cs」%>應位於.aspx頁面的頂部,因爲編譯器不知道您的代碼沒有它。

+0

這解決了原來的問題,所以請做光榮的事情並將其標記爲已接受的答案:) –

+0

@ Stephen Ke nnedy:謝謝斯蒂芬......我會看看那個問題...... – Saravanan

+0

如果你有解決方案,請讓我知道...... – Saravanan