您好,我正在尝试调用一个 C# Web 方法,该方法采用 3 个字符串参数并返回一个以 JSON 格式使用的列表。由于某种原因,我无法调用该方法,希望有人能伸出援手。
以下是 ContentPage.aspx.cs 中我的 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 中。
关于javascript - AJAX 调用 C# Web 方法以返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34385604/