2

私はasp mvcを使用していますが、このようにプログラムの一部でデータを取得しています

 public List<IncidentPerAreaCount> getIncident()
    {
        int RondeboschCounter = 0;
        int ClaremontCounter = 0;
        int AthloneCounter = 0;
        List<IncidentPerAreaCount> IncidentAreaCount = new List<IncidentPerAreaCount>();
        IncidentPerAreaCount Rondebosch = new IncidentPerAreaCount();
        IncidentPerAreaCount Claremont = new IncidentPerAreaCount();
        IncidentPerAreaCount Athlone = new IncidentPerAreaCount();

        List<Report> Reports = GetReports();
        for (int i = 0; i < Reports.Count(); i++)
        {
            if (Reports.AsEnumerable().ElementAt(i).Area == "Rondebosch")
            {
                RondeboschCounter++;
            }
            else if (Reports.AsEnumerable().ElementAt(i).Area == "Claremont")
            {
                ClaremontCounter++;
            }
            else if (Reports.AsEnumerable().ElementAt(i).Area == "Athlone")
            {
                AthloneCounter++;
            }

        }
        Rondebosch.AreaName = "Rondebosch";
        Rondebosch.NumberOfIncidents = RondeboschCounter;
        Claremont.AreaName = "Claremont";
        Claremont.NumberOfIncidents = ClaremontCounter;
        Athlone.AreaName = "Athlone";
        Athlone.NumberOfIncidents = AthloneCounter;

        IncidentAreaCount.Add(Rondebosch);
        IncidentAreaCount.Add(Claremont);
        IncidentAreaCount.Add(Athlone);

        return IncidentAreaCount;
    }

次に、Jquery を介してこの文字列を取得しようとしています

 var Reports = [];
    $.ajax({
    url: "Home/getIncident",
    async: false,
    dataType: 'json',
    success: function (json) { Reports = json.whatever; }
    });
    alert(Reports);

ただし、アラート機能は、データを含む JSON 形式の文字列ではなく、空 (つまり、空のテキスト ボックス) を表示し続けます。

助けてください...

4

3 に答える 3

1

ajaxの外部ではなく、ajaxの成功関数内でデータを取得します。アラートを成功内に移動しようとすると、データが取得されます。

var Reports = [];
        $.ajax({
        url: "Home/getIncident",
        async: false,
        dataType: 'json',
        success: function (json) { 
                 Reports = json.whatever; 
                 alert(Reports); //Right place
        }
        });
        alert(Reports); // Wrong place
于 2012-06-12T06:01:00.037 に答える
1

アラートを間違った場所に配置しています。

$.ajax({
    url: "Home/getIncident",
    async: false,
    dataType: 'json',
    success: function (json) {
        Reports = json.whatever; 
        alert(Reports); // should be here.
    }
});

コードに飛び込む前に、これこれを読んでください。

于 2012-06-11T16:39:59.507 に答える