1

開発の新しいミツバチとして、最善の方法は何かという私の要求に従って、どのようにデータを取得できるかという質問があります

私のデザインはこんな感じです。

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 のリストを渡し、これを配列にフォーマット/変換できますか? ? 例を教えてください。

4

2 に答える 2

2

events_arrayはそのオブジェクトの配列ではないため、newArrayを実行するのは誤りです。新しいオブジェクト以上を実行する{}:

var events_array = {};
events_array[0] = {...

バックエンドがコンテンツをJSONオブジェクトに変換できる場合は、ajaxを介してクライアント側に送信して解析できます

JSON.parse(obj);
于 2013-02-24T14:31:29.203 に答える
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);
        })
    }
});
于 2013-02-24T14:31:39.290 に答える