AJAX调用C#Web方法以返回列表
AJAX call to C# Web Method to return a List
你好,我正在尝试调用一个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服务中的其他一切都很好。
相关文章:
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 用于查询错误转换的角度资源返回列表
- 如何在用户返回和上一个按钮时刷新下拉列表
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- Spring Ajax列表返回,但对象为空
- 为什么数据列表选项的id返回空值
- 返回谷歌搜索的网址列表
- 从数组列表中返回唯一的数组
- javascript循环遍历列表项,并在数组中返回结果
- JavaScript 正则表达式 exec() 返回列表中重复的匹配,为什么
- 返回列表的函数 - 过滤输出时出现问题
- AJAX调用C#Web方法以返回列表
- 如何优雅地返回列表中频率最高的3个和频率较低的3个数字
- 返回列表中的第n个元素-雄辩的javascript 4.3
- 无法从angular服务向控制器返回列表数据
- 如何获取jQuery选择器's返回列表的引用
- Spring MVC @ResponseBody, JSON, JSP.试图返回列表<对象>从控制器到JSP
- 为什么array[length]返回列表的第一个元素?
- Ajax调用返回列表从python flask批准
- 如何只返回列表的单个值并将其添加到特定的html元素中