2011-11-21 11 views
7

नहीं देखता मैं बिना रेजर इंजन (सीएसटीएमएल) फ़ाइलों के उपयोग करना चाहता हूं, लेकिन तारों पर। मैं MVC के भीतर से यह करना चाहते हैं, मुझे लगता है कि का उपयोगतारों पर रेजर इंजन का उपयोग करना -

new RazorViewEngine().Render 

उदाहरण देखा है, लेकिन मैं प्रस्तुत विधि नहीं मिल रहा है, यह MVC के पुराने दिनों से कुछ है?

मैं भी कि Razor.Parse का उपयोग उदाहरण देखा है, लेकिन मैं यह नहीं मिल रहा है या तो - शायद एक संदर्भ लापता (लेकिन अगर मैं MVC पहले से ही है, है ना उपयोग कर रहा हूँ यह वहाँ होना चाहिए?)

क्या यह सलाह देने योग्य है कि रेजर का उपयोग करने के लिए यदि मुझे बस इतना करना है कि एक HTML स्ट्रिंग में 3-4 पैरामीटर इंजेक्ट करें? मुझे लगता है कि मैं अभी एमवीसी के साथ थोड़ा सा उत्साहित हूं और शायद सीधे सोच नहीं रहा हूं। मैं स्मृति में एचटीएमएल तारों को कैश करने और बस डीबी से पास-इन मॉडल को कैश करने की योजना बना रहा हूं।

आप

उत्तर

3

आप RazorEngine पर एक नज़र लग सकते हैं धन्यवाद।

+0

यह एक ओवरकिल की तरह लगता है - ऐसा लगता है कि मुझे ऐसा विशाल बाहरी पुस्तकालय के बिना ऐसा करने में सक्षम होना चाहिए - लेकिन यह बहुत अच्छा लग रहा है। हालांकि - संस्करण 3 के बारे में उनके [ब्लॉग पोस्ट] (http://www.fidelitydesign.net/?p=473) को देखते हुए मैं वर्तमान संस्करण को आजमाने की कोशिश नहीं करता, क्योंकि मुझे इसे एक बहुप्रचारित के तहत चलाने की आवश्यकता है पर्यावरण और (उम्मीद है) टेम्पलेट – Madd0g

+0

@ मैड 0 जी का समर्थन कैशिंग, आपका परिदृश्य क्या है? शायद आपकी जरूरतों को पूरा करने के लिए और अधिक अनुकूलित चीजें हैं। –

+0

मेरे पास प्लेसहोल्डर के साथ HTML टेम्पलेट्स की एक सूची है, प्रत्येक नियमों के एक सेट से जुड़ा हुआ है, वे एक डीबी में सहेजे गए हैं। आखिरकार ये टेम्पलेट उन डेटा पर लागू होंगे जो कुछ शर्तों (और नियम) को पूरा करते हैं। पसंदीदा रूप से पूरे टेम्पलेट को कैश किया जाता है ताकि यह डेटा को तेज़ी से संभाल सके। इसे केवल आंशिक दृष्टि की तरह काम करने की ज़रूरत है, केवल "गतिशील"। – Madd0g

5

आदेश में तार पार्स करने के लिए RazorEngine उपयोग करने के लिए, आप RazorEngine.dll, जो http://razorengine.codeplex.com/

से डाउनलोड किया जा सकता की आवश्यकता होगी उस्तरा इंजन के साथ एक स्ट्रिंग पार्स करने के लिए बस निम्न उदाहरण का उपयोग:

var model = new { Name = "Test" }; 
var template = "Hello @Model.Name"; 

var result = Razor.Parse(template, model); 

किसी स्ट्रिंग को पार्स करने के लिए इसका उपयोग करने के लिए सलाह दी जाती है या नहीं, वास्तव में इस पर निर्भर करता है कि आप इसका उपयोग किस प्रकार कर रहे हैं। यदि आपको लगता है कि आपको रेजर की लचीलापन की आवश्यकता होगी, तो मैं इसकी अनुशंसा करता हूं, लेकिन मानक स्ट्रिंग को प्रतिस्थापित करने पर इसकी तुलना में प्रदर्शन प्रदर्शन के साथ आता है।

+0

मैं प्रोजेक्ट के बाहर विचारों के प्रबंधन के लिए इसका उपयोग कर रहा हूं - मुझे प्रदर्शन की परवाह है क्योंकि मुझे कई उम्मीद है (20? 50?) इन टेम्पलेट्स को एक पेज-व्यू पर कॉल करता है - यही कारण है कि नए संस्करण में बदलावों के बारे में उनके ब्लॉग पोस्ट ने मुझे पुरानी कोशिश करने से डर दिया है, जो वे कहते हैं कि बहु-थ्रेडेड वातावरण में बहुत अच्छा काम नहीं करता है (वेब ​​शायद इस श्रेणी के अंतर्गत आता है, है ना?) – Madd0g

+0

हाँ शायद आप जो हासिल करने की कोशिश कर रहे हैं उसके लिए एक अच्छा विचार नहीं है। –

0

RazorParser classParse method है जो टेक्स्ट रीडर इनपुट इनपुट पैरामीटर के रूप में लेता है। हालांकि पूरे System.Web.Razor.Parser namespace

इस प्रकार के रूप में चिह्नित किया गया है/सदस्य .नेट फ्रेमवर्क बुनियादी सुविधाओं का समर्थन करता है और अपने कोड से सीधे इस्तेमाल किया जा करने का इरादा नहीं है।

तो आपको इसे स्वयं से समझना होगा।

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