AJAX调用C#Web方法以返回列表
本文关键字:返回 列表 方法 调用 C#Web AJAX | 更新日期: 2023-09-27 18:27:34
你好,我正在尝试调用一个c#web方法,该方法接受3个字符串参数并返回一个列表以JSON格式使用。由于某种原因,我无法调用该方法,希望有人能伸出援手。
以下是我在ContentPage.aspx中的WebMethod-statsDataSet中的Date和Stat分别是字符串。
var myPlayer = new Player();
var statsDataSet = new List<TodaysTotal>();
var beginningMonth = (Month)System.Enum.Parse(typeof(Month), startMonth);
var endingMonth = (Month)System.Enum.Parse(typeof(Month), endMonth);
var statsRequested = myPlayer.statsBase.GetDateAdjustedData(beginningMonth, endingMonth);
if (stat.Equals("AVG"))
{
statsDataSet.AddRange(statsRequested.Select(day => new TodaysTotal
{
Date = day.Date,
Stat = day.BA.ToString()
}));
}
else if (stat.Equals("SLG"))
{
statsDataSet.AddRange(statsRequested.Select(day => new TodaysTotal
{
Date = day.Date,
Stat = day.SLG.ToString()
}));
}
else
{
var statCategory = (Stat)System.Enum.Parse(typeof(Stat), stat);
statsDataSet.AddRange(statsRequested.Select(day => new TodaysTotal
{
Date = day.Date,
Stat = day.GetTodaysTotal(statCategory)
}));
}
return statsDataSet;
这是我的ajax调用:
$.ajax({
type: "POST",
url: "ContentPage.aspx/ProcessDetailedStatRequest",
data: JSON.stringify({
stat: statCategory //statCategory is a JS string variable,
startMonth: startMonth //startMonth is a JS string variable,
endMonth: endMonth //endMonth is a JS string variable
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (Result) {
Result = Result.d;
var data = [];
for (var i in Result) {
var serie = new Array(Result[i].Date, Result[i].Stat);
data.push(serie);
}
},
error: function (Result) {
alert("Error");
}
});
感谢您的帮助。
好的,所以我开始工作了。C#需要是静态的,而我传递的数据实际上需要封装在JSON.stringify.中
从data
中删除JSON.stringify
,它需要object
而不是string
。
$.ajax({
type: "POST",
url: "ContentPage.aspx/ProcessDetailedStatRequest",
data: {
stat: statCategory //statCategory is a JS string variable,
startMonth: startMonth //startMonth is a JS string variable,
endMonth: endMonth //endMonth is a JS string variable
},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (Result) {
Result = Result.d;
var data = [];
for (var i in Result) {
var serie = new Array(Result[i].Date, Result[i].Stat);
data.push(serie);
}
},
error: function (Result) {
alert("Error");
}
});
这可能是500 Internal Server Error
的原因,希望web服务中的其他一切都很好。