如何将QueryString变量传递给jQuery Ajax

时间:2016-09-19 13:28:03

标签: jquery asp.net ajax

我有Default.aspx

<asp:Button ID="showOrderbtn" runat="server" Text="ShowOrder"
            onclick="showOrderbtn_Click"/>

在Default.aspx.cs中

protected void showOrderbtn_Click(object sender, EventArgs e)
{
    var d = txtSearchCustomerByID.Value;
    Response.Redirect("Default2.aspx?id=" + d);
}

在这里,我在文本字段中拥有客户ID

现在,我如何在Default2.aspx中的jQuery Ajax中传递“id”。

$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "Default2.aspx/showOrders",
        data: {ID:ID},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: Onsuccess,
        error: Onerror
    });
});

我需要在从Default.aspx.cs

传递的jQuery的ready函数中使用“id”

我在Default2.aspx.cs中实现了showOrders。

谢谢!!

2 个答案:

答案 0 :(得分:1)

您可以使用以下脚本获取和设置查询字符串值:

<script type="text/javascript">
        // Create a common method for getting querystring Parameter value from jQuery
        function getUrlVars() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for (var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }

        $(document).ready(function () {
            var queryStringValue = getUrlVars()["id"];//Pass your Querystring parameter
            $.ajax({
                type: "GET",
                url: "Default2.aspx/showOrders",
                data: { ID: queryStringValue },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (successData) { },
                error: function (errorData) { }
            });
        });
    </script>

希望它对你有所帮助。

由于

答案 1 :(得分:0)

为什么我们不将查询字符串传递给web方法,只是重定向到aspx页面中你想要的页面。让我们看看!!!

在* .aspx

<script>
        function getParameterByName(name) {
            var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
            return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
        }

        $(function() {
            //q=QueryString Name
            var id = getParameterByName('q');
            console.log(id);
            //if (id === null) {
            //     id = "test";
            //  }
            var data = JSON.stringify({ ID: id });
            $(document).ready(function () {
                $.ajax({
                    type: "POST",
                    url: "*.aspx/showOrders",
                    data: data,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(data) {
                        var d = data.d;
                        window.location = "Default2.aspx?id=" + d;
                    }
            });
            });
        });
    </script>

* .aspx.cs

[WebMethod]
public static String showOrders(String ID)
{
    //Do some work an logic here
    return ID;
}

和.aspx页面完整页面

    <div>
        <asp:Button ID="showOrderbtn" runat="server" Text="ShowOrder"
             ClientIDMode="Static"/>
    </div>
    <script>
        function getParameterByName(name) {
            var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
            return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
        }

        $(function() {

            $('#showOrderbtn').on('click', function(e) {
                    e.preventDefault();
                    alert('In button click');
                    var id = getParameterByName('q');
                    console.log(id);
                    if (id === null) {
                        id = "test";
                    }
                    var data = JSON.stringify({ ID: id });
                    $.ajax({
                        type: "POST",
                        url: "IframeWithPowerBi.aspx/showOrders",
                        data: data,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (data) {
                            var d = data.d;
                            window.location = "Default2.aspx?id=" + d;
                        }
            });


        });
        });
    </script>