पर पासिंग सूची में मेरे पास व्यू बैग का उपयोग करके मेरे नियंत्रक से मेरे दृश्य में आने वाले उपयोगकर्ताओं की एक सूची है। अब मुझे पृष्ठ पर जावास्क्रिप्ट पर एक ही सूची उत्तीर्ण करने में सक्षम होना चाहिए। मैं एक foreach पाश का उपयोग कर सूची को फिर से संगठित कर सकते हैं:एमवीसी व्यूबैग से जावास्क्रिप्ट
@foreach (var item in ViewBag.userList) //Gets list of users passed from controller and adds markers to the map
{
var userLat = item.LastLatitude;
var userLon = item.LastLongitude;
var _userId = item.Id;
<script>array.push({"userId":"'@_userId'","userLat":"'@userLat'","userLon":"'@userLon'"});</script>
}
हालांकि यह एक गंदा दृष्टिकोण की तरह लगता है और दोबारा काम करता है, तो एक परिवर्तन किया है की एक बहुत कुछ की आवश्यकता है। मुझे पता है कि स्टैक ओवरफ़्लो पर समान पोस्ट हैं, लेकिन उनमें से बहुत से एमवीसी के पिछले संस्करण का उपयोग करते हैं और एक ही वाक्यविन्यास लागू नहीं होता है। कोई विचार?
त्वरित और विस्तृत उत्तर के लिए धन्यवाद! लेकिन मुझे निम्न त्रुटि मिलती है 'बिना किसी गतिशील रूप से प्रेषित ऑपरेशन के तर्क के रूप में लैम्ब्डा अभिव्यक्ति का उपयोग नहीं कर सकता ...'। उस भाग के साथ में मुझे एक त्रुटि भी मिलती है 'विधि के लिए प्रकार तर्क ... उपयोग से अनुमानित नहीं किया जा सकता है'। मदद के लिए धन्यवाद, और खेद है कि यह एक रूकी गलती है। अनुलेख मैं इस पृष्ठ पर किसी और चीज़ के लिए व्यू मॉडल का उपयोग कर रहा हूं, इसलिए मैं व्यू बैग का उपयोग कर रहा हूं। – Matt
लेकिन एक व्यू मॉडल एक वर्ग है जिसे आप विशेष रूप से अपने दृश्य की आवश्यकताओं को पूरा करने के लिए डिज़ाइन करते हैं। इस मामले में आपके दृश्य को इस गतिशील जावास्क्रिप्ट को उत्पन्न करने की आवश्यकता है। तो आपके व्यू मॉडल में 'IEnumerable 'प्रकार की संग्रह संपत्ति होनी चाहिए। और फिर बस पूरे कलाकार को 'मॉडल.उसर' के साथ बदलें। चयन करें (...) '।यदि आप कमजोर टाइप किए गए व्यूबैग को छोड़ देते हैं तो आपको इसे उचित 'IEnumerable ' प्रकार पर डालना होगा। –
ठीक है मैंने पृष्ठ को तुरंत संशोधित किया और दृश्य मॉडल का उपयोग किया और यह काम किया। मुझे आपके उत्तरों में से किसी एक को भी संदर्भित करना पड़ा http://stackoverflow.com/questions/12111729/razor-javascript-and-trailing-semicolon, VS2012 में इस बग के बारे में नहीं पता था। महान और सूचनात्मक उत्तर के लिए धन्यवाद! – Matt