Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 邮递http://localhost:13799/HealthPotliWebService.asmx/CreateMarkers 500(内部服务器错误)_Javascript_Asp.net_Ajax - Fatal编程技术网

Javascript 邮递http://localhost:13799/HealthPotliWebService.asmx/CreateMarkers 500(内部服务器错误)

Javascript 邮递http://localhost:13799/HealthPotliWebService.asmx/CreateMarkers 500(内部服务器错误),javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我正在尝试将JSON对象发布到asp.net Web服务 var markers = [{ "position": "128.3657142857143", "markerPosition": "7" }, { "position": "235.1944023323615", "markerPosition": "19" }, { "position": "42.5978231292517", "markerPosition": "-3

我正在尝试将JSON对象发布到asp.net Web服务

var markers = [{ "position": "128.3657142857143", "markerPosition": "7" },
               { "position": "235.1944023323615", "markerPosition": "19" },
               { "position": "42.5978231292517", "markerPosition": "-3" }];

$.ajax({
    type: "POST",
    url: "/webservices/PodcastService.asmx/CreateMarkers",
    // The key needs to match your method's input parameter (case-sensitive).
    data: JSON.stringify({ Markers: markers }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data){alert(data);},
    failure: function(errMsg) {
        alert(errMsg);
    }
});
在服务器端,将方法的输入参数与要传递的数据的形状相匹配:

public class Marker
{
  public decimal position { get; set; }
  public int markerPosition { get; set; }
}

[WebMethod]
public string CreateMarkers(List<Marker> Markers)
{
  return "Received " + Markers.Count + " markers.";
}
公共类标记
{
公共小数位置{get;set;}
公共整数标记位置{get;set;}
}
[网络方法]
公共字符串创建标记(列表标记)
{
返回“已接收”+标记。计数+“标记。”;
}
我得到这个错误:

职位 500(内部服务器错误)


我认为您必须在class an属性上放置[DataContract]和[DataMember]标记,以反序列化输入,删除参数一次,然后从js中点击web服务。如下[WebMethod][ScriptMethod(ResponseFormat=ResponseFormat.Json)]公共字符串CreateMarkets(列表标记){return“Received”+Markers.Count+“Markers.”;}praveen,当我删除参数时,它会起作用。