【问题标题】:jquery ajax loads page instead of asp.net web methodjquery ajax 加载页面而不是 asp.net web 方法
【发布时间】:2014-08-28 18:34:47
【问题描述】:

我有一个将表单对象发送到服务器的 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。

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 我没有使用提交按钮,我遇到了同样的问题。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多