javascript - AJAX 调用 C# Web 方法以返回列表

标签 javascript c# jquery ajax

您好,我正在尝试调用一个 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/

相关文章:

javascript - jquery,在页面未完全加载时加载页面

javascript - jquery 根据整数值生成日期

Javascript 拆分和符号转义

javascript - 如何根据下拉列表中的选择运行函数?

c# - FindMimeFromData() 的 dwMimeFlags 参数中 FMFD_RETURNUPDATEDIMGIMES 的数值是多少?

c# - 直线和球体的交点?

c# - 将动态生成的 GridView 放入 ASP.Net C# 中的特定 <div>

javascript - 动态检测文本框值是否改变

javascript - 弹出模态 FB 喜欢

javascript - AngularJS - 轮询持久数据存储