作为开发中的新蜜蜂,我有一个问题,如何根据我对最佳实践的评价来获取数据
我的设计是这样的。
Java脚本(Ajax调用)>> ashx处理程序(命中数据库和返回数据)>>数据库(我的价值观)
我需要这样的数据才能以HTML格式呈现
var events_array = new Array();
events_array[0] = {
startDate: new Date(2013, 01, 25),
endDate: new Date(2013, 01, 25),
title: "Event 2013, 01, 25",
description: "Description 2013, 01, 25",
priority: 1, // 1 = Low, 2 = Medium, 3 = Urgent
frecuency: 1 // 1 = Daily, 2 = Weekly, 3 = Monthly, 4 = Yearly
};
events_array[1] = {
startDate: new Date(2013, 01, 24),
endDate: new Date(2013, 01, 24),
title: "Event 2013, 01, 24",
description: "Description 2013, 01, 24",
priority: 2, // 1 = Low, 2 = Medium, 3 = Urgent
frecuency: 1 // 1 = Daily, 2 = Weekly, 3 = Monthly, 4 = Yearly
}
events_array[2] = {
startDate: new Date(2013, 01, 07),
endDate: new Date(2013, 01, 07),
title: "Event 2013, 01, 07",
description: "2013, 01, 07",
priority: 3, // 1 = Low, 2 = Medium, 3 = Urgent
frecuency: 1 // 1 = Daily, 2 = Weekly, 3 = Monthly, 4 = Yearly
}
我想知道如何从我的ashx处理程序发送这样的数据。
我有一个EventEnfo类。我可以从处理程序传递EventInfo列表并在上面格式化/转换它吗? ?有什么例子吗?
答案 0 :(得分:2)
events_array不是一个对象的数组,所以做新的数组是错误的。做新的对象或更好的{}:
var events_array = {};
events_array[0] = {...
如果您的后端可以将内容转换为JSON对象,您可以通过ajax将其发送到客户端并解析它
JSON.parse(obj);
答案 1 :(得分:2)
您可以使用JavaScriptSerializer
。因此,您可以从设计与所需JSON结构匹配的模型开始:
public class EventInfo
{
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
public string title { get; set; }
...
}
然后在你的处理程序中:
public void ProcessRequest(HttpContext context)
{
IEnumerable<EventInfo> result = ... fetch from db
var serializer = new JavaScriptSerializer();
context.Response.ContentType = "application/json";
context.Response.Write(serializer.Serialize(result));
}
更新:
以下是您可以使用结果的方法:
$.ajax({
url: '/myhandler.ashx',
success: function(events) {
$.each(events, function() {
alert('Title of the event: ' + this.title);
})
}
});