前台: $.ajax({
url: "./Default.aspx",
type: "POST",
contentType: 'charset=utf-8',
success: function (data) {
if (data = !null) {
$.each(data, function (i, item) {
var spotSelected = new BMap.Point(item.Point);
var labelMarker = new BMap.Marker(spotSelected, { icon: myIcon }); // 创建10个标注
mymap.addOverlay(labelMarker);
var opts = { offset: new BMap.Size(0, -25), title: '<a style="text-decoration:none;color:#2679BA" href="http://www.baidu.com">item.Name</a>' };
var infoWindow1 = new BMap.InfoWindow("<div style='line-height:1.8em;font-size:12px;'><b>地址:</b>item.Address</br><b>电话:</b></br></div>", opts);
});
}
}
});
}
后台:
List<Company> xml = new XmlHelper().SetEntity(HttpContext.Current.Server.MapPath("XMLFile1.xml"));
return xml;
问题:item为空。
还有data为一堆页面代码
贴代码尽量带上格式,另外指出什么错误。
被请求页面尽量用ashx。
响应数据类型尽量为String,或者json。
不好意思,比较少发帖,已经修改,感谢你的关注!
@小小志向: 你后台的响应是List<T>,这在javascript是不可识别的。我在上面就有提到,响应最好为String或者json。
@写代码的小2B: 大哥你就直接帮我改下吧,我纠结好几个小时了。
@小小志向: 你把xml里面的内容贴出来看看。
/// <summary> /// 实体 /// </summary> [XmlRoot("Peoples")] public class Peoples { List<People> items; [XmlElement("People")] public List<People> Items { get { return items; } set { items = value; } } public String ToJson() { StringBuilder sb = new StringBuilder(); sb.Append("{\"Peoples\":["); foreach (People p in items) { sb.AppendFormat("{0},", p.ToJson()); } if (Items.Count > 0) --sb.Length; sb.Append("]}"); return sb.ToString(); } } /// <summary> /// 实体 /// </summary> public class People { String name; [XmlAttribute] public String Name { get { return name; } set { name = value; } } Int32 age; [XmlAttribute] public Int32 Age { get { return age; } set { age = value; } } String sex; [XmlAttribute] public String Sex { get { return sex; } set { sex = value; } } public String ToJson() { return String.Concat("{ \"Name\":\"" + Name + "\",\"Age\":" + Age + ",\"Sex\":\"" + Sex + "\"}"); } }
/// <summary> /// ashx,后台代码 /// </summary> public class GetPeoples : IHttpHandler { public void ProcessRequest(HttpContext context) { String xmlPath = context.Server.MapPath("../data.xml"); System.Xml.Serialization.XmlSerializer serializer = new XmlSerializer(typeof(Peoples)); Peoples p = null; using (FileStream fs = File.OpenRead(xmlPath)) { p = serializer.Deserialize(fs) as Peoples; } context.Response.Write(p.ToJson()); } public bool IsReusable { get { return false; } } }
$.ajax({ "url": "Services/GetPeoples.ashx", "dataType": "json", "success": function (result) { } });
<?xml version="1.0" encoding="utf-8" ?> <Peoples> <People Name="张三" Age="18" Sex="男"></People> <People Name="张三" Age="15" Sex="女"></People> <People Name="张三" Age="28" Sex="男"></People> <People Name="张三" Age="18" Sex="男"></People> <People Name="张三" Age="48" Sex="女"></People> </Peoples>
@写代码的小2B: 怎么给你加分!!万分感谢!
@写代码的小2B: 你好,打扰下麻烦问下window.frames["MapListMain"].toPoint();这个写法要怎么写!其中toPoint()是方法。好像说window.frames[""]后不能直接写方法。
后台返回的是JSON格式的数据吗?
后台返回的是网页信息
@小小志向: 那$.ajax中data的值就是字符串,无法通过$.each进行处理
@dudu: 那可如何是好,我要怎么做呢
@小小志向: 通过Json.NET将xml转换为Json字符串返回
if()语句应该写错了的吧,只是看了一下代码,不知道ajax是不是可以像你那么写,不过看上去好像if()里面写错了的
url: "./Default.aspx", "./" 0.0?