2012-11-16 11 views
9

में असाइन करना मेरे पास एक ऑब्जेक्ट से दृढ़ता से टाइप किया गया दृश्य है जिसमें कुछ ऑब्जेक्ट्स का संग्रह (सूची) शामिल है। मुझे पता है कि पेजर उत्पन्न होने पर रेजर को सर्वर-साइड पर निष्पादित किया जाता है, जबकि पृष्ठ प्रदर्शित होने के बाद तक जावास्क्रिप्ट चर त्वरित नहीं होते हैं ... लेकिन क्या मॉडल को रूपांतरित करना किसी भी तरह से संभव होगा (दृश्य दृश्य के लिए बाध्य है) या उसके किसी भी फ़ील्ड को रेजर में जेएसओएन के बिना उस डेटा को लाने के लिए AJAX कॉल का उपयोग किए बिना?मॉडल को जावास्क्रिप्ट चर में रेजर

तुम्हें पता है, कुछ की तरह ...

var myJavascriptVariable = @Model.MyCollection 

जहां @Model.MyCollection कुछ वस्तुओं की एक सूची है।

धन्यवाद

+1

आप 'वर modelToJson = @ Html.Raw (JSON की तरह कुछ कोशिश किया। एनकोड (मॉडल)); '? –

उत्तर

29

json डेटा आप निम्नलिखित निर्माण का उपयोग कर सकते प्राप्त करने के लिए:

var jsData = @Html.Raw(Json.Encode(Model.MyCollection)); 
+0

इस उत्तर के लिए बहुत बहुत धन्यवाद .... – Scorpio

4

इस प्रयास करें, इस के साथ विनीत जावास्क्रिप्ट हो सकता है:

एचटीएमएल (उस्तरा):

<script id="data" type="text/data-template"> 
@Html.Raw(Json.Encode(Model.MyCollection)) 
</script> 

जेएस (आप इसे बाहरी फ़ाइल में उपयोगकर्ता कर सकते हैं):

var 
    jsonString = $('#data').html(), 
    jsonValue = (new Function("return(" + jsonString + ");"))(); 

Example

HTML:

<script id="data" type="text/data-template"> 
    { 'name': 'Pedro', 'Age': 33} 
</script> 
<div id="result"></div> 

जे एस

var 
    jsonString = $('#data').html(), 
    jsonValue = (new Function("return(" + jsonString + ");"))(); 

$('#result').html(jsonValue.name); 

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