0

jsonからコードを取得します。

C#コード:-

var collection = getsortcat.Select(x => new
        {
            idterm = x.IDTerm,
            mvo = x.MVO,
            pic = x.Pic,
            said = x.SAid,
            termactive = x.TermActive,
            vid = x.Vid,
            fvo = x.FVO,
            eterm = x.ETerm,
            edef = x.EDef,
            buse = x.BUse,
            bterm = x.BTerm,
            idcat = x.TermCat,
            items = x.TermCategory1.IDCat,
            catname = x.TermCategory1.TermCategory1
        });
        JavaScriptSerializer jss = new JavaScriptSerializer();
        string output = jss.Serialize(collection);
        return Json(output, JsonRequestBehavior.AllowGet);

Javascriptコード:-

success: function (e) {
                    var txt = "'{ data :" + e + "}'";
                    var obj = eval("(" + txt + ")");
                    $('#pdata').append(obj.data[0]);
                },

出力が得られません。c#linqオブジェクトからjson、htmlにデータを取得する方法を教えてください。

4

1 に答える 1

0

まず、コントローラーアクションを修正して、JavaScriptSerializersと手動配管コードを削除します。コレクションをJsonの結果に直接返します。

var collection = getsortcat.Select(x => new
{
    idterm = x.IDTerm,
    mvo = x.MVO,
    pic = x.Pic,
    said = x.SAid,
    termactive = x.TermActive,
    vid = x.Vid,
    fvo = x.FVO,
    eterm = x.ETerm,
    edef = x.EDef,
    buse = x.BUse,
    bterm = x.BTerm,
    idcat = x.TermCat,
    items = x.TermCategory1.IDCat,
    catname = x.TermCategory1.TermCategory1
});
return Json(collection, JsonRequestBehavior.AllowGet);

これで、成功コールバック内で、eパラメーターはすでに解析されたオブジェクトの配列を表しています。を呼び出す必要はありませんeval。要素に直接アクセスし(インデックスで)、次にプロパティにアクセスします。

success: function (e) {
    var txt = e[0].mvo;
},

要素をループすることもできます。

success: function (e) {
    for (var i = 0; i < e.length; i++) {
        var element = e[i];
        alert(element.idterm);
    }
},
于 2012-07-05T06:09:36.430 に答える