1

我必须从 java 脚本中调用一个 C# 函数。为此,我使用 ajax 发布请求来调用 C# 函数。但是我的 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();
        }
     }
  }
4

1 回答 1

1

错误是 [ArgumentException: Unknown web method UploadImage。参数名称:methodName]。

<%@ Page Language="C#" Inherits="_Default" CodeFile="Default.aspx.cs" %> 应该在 .aspx 页面的顶部,因为没有它,编译器不知道您的代码。

于 2013-05-29T12:03:44.287 回答