我必须从java脚本调用一个C#函数。因为我使用ajax post请求调用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();
}
}
}
答案 0 :(得分:1)
错误是[ArgumentException:未知的Web方法UploadImage。参数名称:methodName]。
&lt;%@ Page Language =&#34; C#&#34;继承=&#34; _Default&#34;的CodeFile =&#34; Default.aspx.cs&#34; %GT;应该位于.aspx页面的顶部,因为编译器在没有它的情况下不知道你的代码。