代码之家  ›  专栏  ›  技术社区  ›  lexx

VB。NET代码隐藏无法从AJAX请求获取数据

  •  0
  • lexx  · 技术社区  · 6 年前

    如果你能帮助我,我会很高兴的。我在Page\u Load中获取来自AJAX请求的数据时遇到问题。我执行AJAX请求:

    $.post({
                url: 'pdf.aspx',
                //data: { ID: '1833' },
                data: 'id=1833',
                dataType: 'text',
                type: 'post',   
                contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    
                success: function (data, textStatus, jQxhr) {
                    console.log("sssss " + data);
                },
                failure: function (msg) {
                    console.log("fffff " + msg);
                },
                error: function (jqXhr, textStatus, errorThrown) {
                   console.log(errorThrown);
                }
            });
    

    我有代码隐藏:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
      Handles Me.Load
    
        Dim ID = Request.Form("id")
        Response.Write(ID)
    
    End Sub
    

    结果,我没有得到ID变量。我尝试了所有可能的选择,但仍然有一个问题。有什么想法吗?谢谢你的回答!

    1 回复  |  直到 6 年前
        1
  •  3
  •   kblau    6 年前

    这是您的aspx:

    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="VisualBasicWebForm.WebForm1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script src="Scripts/jquery-1.12.0.min.js"></script>
        <script type="text/javascript">
            $(function () {
                $("#theBtn").click(function () {
                    $.post({
                        url: 'WebForm1.aspx/GetData',
                        type: 'POST',
                        //using get all textbox selector-you can use a different selector
                        data: '{ID: "' + $(":text").attr("ID") + '" }',
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (data, textStatus, jQxhr) {
                            //don't forget the .d
                            alert("sssss " + data.d);
                        },
                        error: function (jqXhr, textStatus, errorThrown) {
                            console.log(errorThrown);
                        }
                    });
                })
            })
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:TextBox runat="server" ID="passToServer" />
                <input type="button" id="theBtn" value="Go" />
            </div>
        </form>
    </body>
    </html>
    

    以下是您的代码:

    Imports System.Web.Services
    
    Public Class WebForm1
    Inherits System.Web.UI.Page
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As    System.EventArgs) Handles Me.Load
    End Sub
    
    <WebMethod()>
    Public Shared Function GetData(ByVal ID As String) As String
        'Dim ID = Request.Form("id")
        'Response.Write(ID)
        'Instead of the above, you can put a breakpoint on the next line to see value of ID
    
        'Also returning ID so it is display, in your case sent to console.log
        Return ID
    End Function
    End Class