我的课就是这样,
public class SayfalarIletisim : IHarita
{
public string KordinatX{ get; set; }
public string KordinatY { get;set; }
public string Adres{ get;set; }
public string EkBilgi {get;set;}
}
和表示层
var IletisimKaydet = function () {
var adres= App.txtIletisimAdres.getValue();
var icerik= App.txtIcerik.getValue();
var kX=$('#lat').val();
var kY=$('#lng').val();
var dd = JSON.stringify({ 'Adres': adres, 'EkBilgi': icerik, 'KordinatX': kX, 'KordinatY': kY });
$.ajax({
type: "POST",
url: 'WebServiceAdmin.asmx/IletisimKaydet',
data: "{'p':'" + dd + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (d) { Ext.Msg.notify('Uyarı', 'ekleme basarılı...'); },
error: function () { Ext.Msg.notify('Uyarı', 'eklerken hata oluşdu!!!'); }
});
};
我将数据发送到这样的Web服务,并解析它
[WebMethod]
public void IletisimKaydet(string p)
{
var serializer= new JavaScriptSerializer ();
var jsonObjectSayfa = serializer.Deserialize<IList<SayfalarIletisim>>(p);
dal_syf.GuncelleIletisim(jsonObjectSayfa[0]);
}
运行这些代码时,我怎么会收到此错误。
No parameterless constructor defined for type of 'System.Collections.Generic.IList`1
这个代码有什么问题,在我运行这些代码之前没有任何问题。
答案 0 :(得分:2)
您必须使用类的反序列化,而不是代码中的接口。 像那样:
[WebMethod]
public void IletisimKaydet(string p)
{
var serializer= new JavaScriptSerializer ();
var jsonObjectSayfa = serializer.Deserialize<List<SayfalarIletisim>>(p);
dal_syf.GuncelleIletisim(jsonObjectSayfa[0]);
}
具体实现List<SayfalarIletisim>
支持接口IList<SayfalarIletisim>
,因此您仍然可以获得实际的impl。