से व्यूबैग में एक मान संग्रहीत करें मैं इसे जावास्क्रिप्ट से एक्सेस करने वाले व्यूबैग में एक मूल्य कैसे संग्रहीत कर सकता हूं?जावास्क्रिप्ट
16
A
उत्तर
38
आप जावास्क्रिप्ट से व्यूबैग में कोई मान संग्रहीत नहीं कर सकते हैं। व्यूबैग एक सर्वर साइड अवधारणा है और केवल सर्वर पर मौजूद है। जावास्क्रिप्ट क्लाइंट पर चलता है। जहां तक JavaScript वैरिएबल आप निम्नलिखित इस्तेमाल कर सकते हैं का सवाल है में ViewBag से कुछ डेटा भंडारण के रूप में: ASP.NET MVC में ViewBag/ViewData का उपयोग कर के खिलाफ
<script type="text/javascript">
var foo = @Html.Raw(Json.Encode(ViewBag.FooBar))
</script>
अब इस कहा जा रहा है मैं हमेशा सलाह लोग। मैं दृढ़ता से टाइप किए गए दृश्य का उपयोग करने और मॉडल देखने की सलाह देते हैं। तो आपका कोड इस तरह दिखेगा:
@model MyViewModel
<script type="text/javascript">
var foo = @Html.Raw(Json.Encode(Model))
</script>
3
आप नहीं कर सकते। व्यूबैग एक सर्वर-साइड चीज है, जावास्क्रिप्ट क्लाइंट साइड पर चलता है।
@Agzam, आप इस ऑब्जेक्ट को एक्सेस करना चाहते हैं? जावास्क्रिप्ट में? यह बुरी बात है। इसका मतलब यह होगा कि आपके विचार कुछ हिस्सों से जानकारी खींचेंगे। दृश्य जानकारी खींचने के लिए नहीं माना जाता है। उन्हें सूचना का उपयोग करना होता है जो उन्हें नियंत्रक कार्रवाई से मॉडल के रूप में पास किया जा रहा है। तो एक व्यू मॉडल को परिभाषित करने के लिए स्वतंत्र महसूस करें, एक नियंत्रक क्रिया जो जानकारी संग्रहीत करेगी, जहां भी इसे संग्रहीत किया जाता है (आपके मामले में एप्लिकेशन स्कोप) और इस दृश्य मॉडल को दृश्य में पास करें। फिर इस दृश्य के अंदर आपको केवल दृश्य मॉडल => का उपयोग करना है, जो कि सभी विचारों को –
करना चाहिए अब यदि आप अपने सर्वर पर जावास्क्रिप्ट चर में संग्रहीत कुछ जानकारी पास करना चाहते हैं तो आपके पास कुछ संभावनाएं हैं: AJAX, HTML फॉर्म, window.location.href, एंकर, ... –
@DarinDimitrov - मैं बस वेब फॉर्म से एमवीसी में स्विच करना सीख रहा हूं और शायद हाल ही में आपके उत्तरों में से लगभग 20 का उपयोग करता हूं, यह एक निश्चित रूप से मुझे बहुत समय बचाता है –