【问题标题】:Jquery Ajax send formdata to asp.net webpage (aspx.cs)Jquery Ajax 将表单数据发送到 asp.net 网页(aspx.cs)
【发布时间】:2017-05-03 03:23:57
【问题描述】:

下面是我的ajax请求

function sendData() {
    var formdata = new FormData();
    var fileUpload = $("#txtUploadFile").get(0);
    var files = fileUpload.files;   
    for (var i = 0; i < files.length; i++) {
        formdata.append(files[i].name, files[i]);
        }
    formdata.append("PaymentDate", new Date());
    $.ajax({
        url: 'CCA_Form.aspx/SendData',
        type: 'POST',
        data: formdata,
        contentType: false,
        processData: false,
        success: function () {
            alert("Data Added Successfully");
        },
        error: function () {
            alert("Error while inserting data");
        }
    });
}

而我的服务器方法是这样的

    [WebMethod]
    public static string SendData()
    {//break point here
        // code
        return "return data";
    }

ajax 方法总是显示成功消息和 webmethod 没有在服务器端命中。你能帮我在我的代码中遗漏什么吗? 提前致谢。

【问题讨论】:

    标签: c# jquery asp.net ajax


    【解决方案1】:

    使用 EnablePageMethods="True" 将脚本管理器添加到您的页面中

    在 C# 中:

      [WebMethod]
      public static string SendData(DateTime date)
      {//break point here
          // code
          return "return data";
      }
    

    在 aspx 中

      <asp:ScriptManager ID="ScriptManagerMain"
            runat="server"
            EnablePageMethods="true" 
            ScriptMode="Release" 
            LoadScriptsBeforeUI="true">
      </asp:ScriptManager>
    

    在 JavaScript 中

     PageMethods.SendDate(new Date(),function(response){
        // success
     });
    

    并使用

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="xc" %>
    
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <xc:AsyncFileUpload OnClientUploadError="uploadError"
        OnClientUploadComplete="uploadComplete" runat="server"
        ID="AsyncFileUpload1" Width="400px" UploaderStyle="Modern"
        OnUploadedComplete = "FileUploadComplete"
      />
     <asp:Label id="lblMsg" runat="server" />
    </form>
    

    还有

    protected void FileUploadComplete(object sender, EventArgs e)
    {
        string filename  = System.IO.Path.GetFileName(AsyncFileUpload1.FileName);
         AsyncFileUpload1.SaveAs(Server.MapPath("Uploads/") + filename);   
    }
    

    还有js

    <script type = "text/javascript">
        function uploadComplete(sender)      {
            $get("<%=lblMsg.ClientID%>").innerHTML = "File Uploaded Successfully";
         }
    
    function uploadError(sender) {
        $get("<%=lblMsg.ClientID%>").innerHTML = "File upload failed.";
    }
    

    【讨论】:

    • 感谢您的帮助,但我不仅要单独发送日期,还要发送文件。请看我更新的问题。
    • 使用 异步上传文件
    猜你喜欢
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 2013-03-06
    • 2011-06-17
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    相关资源
    最近更新 更多