jquery ajax加载页面而不是asp.net web方法

时间:2014-08-28 18:34:48

标签: jquery asp.net asp.net-ajax

我有一个jQuery AJAX调用,它将表单对象发送到服务器。实际上我想使用html输入文件和输入提交按钮发送此iam的文件对象。

<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<input type="file" id="myFile" name="myFile" />
   <input id="Button1" type="submit" value="Submit"  />
 <form>

这是我的提交点击

  $('#Button1').click(function (event) {
   $.ajax({
                      type: "POST",
                      url: "Test.aspx/ag",
                      data: {},
                      processData: false,
                      contentType: false,                                
                      success: function (data) {
                          alert(data);
                      }
 });

 });

背后的代码是

 [System.Web.Services.WebMethod]  
    public static int ag()  
    {  
       HttpPostedFile file = HttpContext.Current.Request.Files["myFile"];  
    }  

Webmethod不再被解雇,而是正在触发webmethod所在页面的Page_load。为什么?我能做什么?在服务器端,我想获取文件。我正在使用框架4.0。

2 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为您使用的是“提交”按钮,这意味着当您需要将其类型从“提交”更改为“按钮”时,将提交表单。

答案 1 :(得分:0)

在您的Site.Master中的asp:ScriptManager元素中,确保它包含EnablePageMethods =“ true”属性