我无法在我的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();
}
答案 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)
{
}