jqplot - 通过ajax将变量传递给C#页面

时间:2015-11-03 00:55:18

标签: c# jquery ajax jqplot

我无法在我的c#页面上检索$ .ajax传递的值。

我正在使用jqplot,我想传递两条信息。一个存储在名为“hidden_​​plateid”的隐藏字段中,第二个信息来自名为“SampleNumberList”的下拉框

这是隐藏的字段

<input type="text" name="hidden_plateID" id="hidden_plateID" hidden="hidden" runat="server" />

这是下拉框:

<select name="SampleNumberList" class="DropDownBox_editjob" id="SampleNumberList">
    <option value="--SELECT--"></option>
    <option value="001r">001r</option>
    <option value="002r">002r</option>
</select>

我只是说,每次有人从下拉框中选择,从数据库中获取并获取信息并绘制图表

$('#SampleNumberList').on('change', function (e) {

            var ajaxDataRenderer = function (url, plot, options) {
                var ret = null;
                $.ajax({
                    data: {
                        PlateID2: options.PlateID,
                        SampleID2: options.SampleID,
                    },
                    async: false,
                    url: url,
                    dataType: "json",
                    success: function (data) {
                        alert(data);
                        ret = data;
                    },
                    error: function (xhr, err) {
                        alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
                        alert("responseText: " + xhr.responseText);
                    }
                });
                return ret
            };

            var jsonurl = "SpectraData.aspx";

            var plot2 = $.jqplot('chartdiv', jsonurl, {
                title: "AMIRA",
                dataRenderer: ajaxDataRenderer,
                dataRendererOptions: {
                    unusedOptionalUrl: jsonurl, PlateID: $('#hidden_plateID').val(), SampleID: $('#SampleNumberList').val()
                }
            });
        });

我使用Request.Querystring来尝试检索c#文件中的值,但到目前为止,我什么都没得到

if (Request.QueryString["PlateID2"] != null)
{
   PlateID = Request.QueryString["PlateID2"].ToString();
}

if (Request.QueryString["SampleID2"] != null)
{
   SampleID = Request.QueryString["SampleID2"].ToString();
}

1 个答案:

答案 0 :(得分:0)

您正在尝试从查询字符串中检索值,但您将参数作为json传递。 为了将它们作为查询字符串params检索,您需要将它们传递给您的URL。

$.ajax({
                    async: false,
                    url: url + "?PlateID2=" + options.PlateID + "&SampleID2=" + options.SampleID + "",
                    dataType: "json",
                    success: function (data) {
                        alert(data);
                        ret = data;
                    },
                    error: function (xhr, err) {
                        alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
                        alert("responseText: " + xhr.responseText);
                    }
                });

实际上,正确的方法是将params作为json字符串传递并拦截在后面的代码中。

$.ajax({
                                url: url/Somemethod,
                                type: 'POST',
                                dataType: 'json',
                                  data: "{'PlateID2':'" + options.PlateID + "','SampleID2':'" + options.SampleID + "'}",
                                success: function (data) {
                            alert(data);
                            ret = data;
                        },
                                 error: function (xhr, err) {
                            alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
                            alert("responseText: " + xhr.responseText);
                        }
                            });

在你的代码隐藏中:

[WebMethod]
    public static void Somemethod(string PlateID2,string SampleID2)
    {

    }