2013-01-25 9 views
5

क्रमबद्ध करने के लिए जावास्क्रिप्टसेरियलाइज़र क्लास का उपयोग करता है Json.Encode() हेल्पर JavaScriptSerializer कक्षा का उपयोग जेसन से स्ट्रिंग को एन्कोड करने के लिए करता है?क्या Json.Encode()

मुझे Json.Encode(Model) का उपयोग करते समय एक परिपत्र संदर्भ अपवाद मिल रहा है, भले ही मेरी कक्षा गुणों को क्रमबद्ध किया जा रहा हो, [ScriptIgnore] विशेषता है।

मेरा एकमात्र अनुमान यह है कि शायद Json.Encode() सहायक जेसन को क्रमबद्ध करने के लिए जावास्क्रिप्टसेरियलाइज़र का उपयोग नहीं करता है लेकिन मुझे एमएसडीएन पर कहीं भी दस्तावेज़ीकरण नहीं मिल रहा है।

@Html.Raw(Json.Encode(Model)) 

यहाँ मॉडल एक संपत्ति है कि धारावाहिक नहीं किया जाना चाहिए है कि में से एक का एक उदाहरण है ...

using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Web.Script.Serialization; 

namespace RobotDog.Entities { 
    public class Character { 
     [Key] 
     [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
     public int Id { get; set; } 

     [MaxLength(200)] 
     public string Name { get; set; } 

     public virtual Person Person { get; set; } 

     [ScriptIgnore] 
     public virtual Movie Movie { get; set; } 
    } 
} 
+1

'Json.Encode' सबसे अधिक संभावना' System.Web.Mvc' का उपयोग करता है नेमस्पेस जो 'System.Web.Script.Serialization.JavaScriptSerializer' से अलग है। आप क्या हासिल करने का प्रयास कर रहे हैं? – juanreyesv

+0

मेरे नियंत्रक में मैं एक 'आईनेमरेबल ' प्राप्त करने के लिए अपने भंडार से पूछता हूं और फिर दृश्य में मैं मॉडल को क्रमबद्ध करता हूं क्योंकि मैं यूआई के लिए नॉकआउटजेएस का उपयोग कर रहा हूं। – bflemi3

+0

मुझे यह भी जिक्र करना चाहिए कि मेरी संस्थाएं मेरी वेब प्रोजेक्ट से अलग कक्षा पुस्तकालय परियोजना में हैं। – bflemi3

उत्तर

6

क्या जेसन.एन्कोड() हेल्पर जावास्क्रिप्ट सेरियलाइज़र क्लास का उपयोग जेसन को स्ट्रिंग को एन्कोड करने के लिए करता है?

हां।

स्रोत कोड से:

private static readonly JavaScriptSerializer _serializer = Json.CreateSerializer(); 

public static string Encode(object value) 
{ 
    DynamicJsonArray dynamicJsonArray = value as DynamicJsonArray; 
    if (dynamicJsonArray != null) 
    return Json._serializer.Serialize((object) (object[]) dynamicJsonArray); 
    else 
    return Json._serializer.Serialize(value); 
} 

जहां JavaScriptSerializer है System.Web.Script.Serialization.JavaScriptSerializer

भी

की सहायता के लिए अपनी समस्या दिखाई this thread

0

http://msdn.microsoft.com/en-us/library/system.web.helpers.json.encode(v=vs.111).aspx

ऊपर के लिंक Json.Encode के अनुसार प्रणाली का उपयोग करता। web.helpers।

आपके मॉडल में क्या शामिल है?

साथ ही, क्या आप सुनिश्चित हैं कि [ScriptIgnore] जो आपने इसे सौंपा है उसे अनदेखा कर देगा?

+0

हाँ मैंने msdn दस्तावेज़ों को देखा है, और यह वास्तव में उपयोगी नहीं था। मैंने उन संस्थाओं में से एक जोड़ा है जिसमें एक ऐसी संपत्ति है जिसे धारावाहिक नहीं किया जाना चाहिए। – bflemi3

संबंधित मुद्दे