此 jQuery 调用不断失败,并显示以下错误消息:"Cannot convert object of type 'System.String' to type 'System.Collections.Generic.IDictionary
2[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();
}