0

この jQuery 呼び出しは、次のエラー メッセージで失敗し続けます: "Cannot convert object of type 'System.String' to type 'System.Collections.Generic.IDictionary2[System.String,System.Object]'"`

jQuery:

$('input, select').blur(function ()
                {
                    var categoryId = $('#IncidentCategoryEnhancedDropDownList').val();
                    var latitude = $('#LatitudeHidden').val();
                    var longitude = $('#LongitudeHidden').val();
                    var dateTime = $('#DateEnhancedTextBox').val();

                    if (categoryId == '--Select--')
                    {
                        return;
                    }

                    if (!latitude.length || !longitude.length)
                    {
                        return;
                    }

                    if (!dateTime.length)
                    {
                        return;
                    }

                    $.ajax({
                        type: "POST",
                        url: "ReportIncident.aspx/GetIncidentsNearBy",
                        data: $.toJSON('{categoryId:"' + categoryId + '",latitude:' + latitude + ',longitude:' + longitude + ',dateTime:"' + dateTime + '"}'),
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg)
                        {
                            console.log(msg.d);
                            // $("#Result").text(msg.d);
                        }

                    });
                });

ページメソッド:

 [WebMethod]
        public static IList<IncidentDTO> GetIncidentsNearBy(int categoryId, float latitude, float longitude, DateTime dateTime)
        {
            var incidents = new MendixIncidentDAO().GetIncidents()
                .Where(i => i.IncidentTypeId == categoryId)
                .Where(i => i.Date >= dateTime.AddHours(-1) && i.Date <= dateTime.AddHours(1))
                .Where(
                    i =>
                    SpatialHelpers.DistanceBetweenPlaces((double) longitude, (double) latitude, (double) i.Longitude,
                                                         (double) i.Latitude) < 1)
                .Select(
                    i =>
                    new IncidentDTO
                        {
                            Id = i.IncidentId,
                            IncidentCategory = i.IncidentType,
                            Address = i.Address,
                            FormattedDate = i.FormattedDate
                        });
            return incidents.ToList();
        }
4

1 に答える 1

0

問題は Ajax 呼び出し、特に data:$.toJSON(...) 部分にありました。以下のコードは完全に機能するようになりました。

$.ajax({
                        type: "POST",
                        url: "ReportIncident.aspx/GetIncidentsNearBy",
                        data:"{categoryId:" + categoryId+",latitude:"+latitude+",longitude:"+longitude+",dateTime:'"+dateTime+ "'}", 
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg)
                        {
                            console.log(msg.d);                           
                            $("#Result").text(msg.d);
                        }
                    });
于 2012-09-18T21:09:25.993 に答える