2013-07-03 7 views
5

मेरी योजना कुछ गतिशील रूप से लोड की गई असेंबली है जो कुछ वेब इंटरफेस प्रदान कर सकती है।एपीकंट्रोलर और रेजर विचार

मैंने उन असेंबली के अंदर कुछ वेबएपी नियंत्रकों को रखने का फैसला किया और इनमें से कुछ नियंत्रक इनलाइन रेजर टेम्पलेट्स (कस्टम मीडिया टाइप प्रकार के माध्यम से) का उपयोग करके एचटीएमएल दृश्यों की सेवा कर सकते हैं। यह इनलाइन रेजर के साथ बहुत अच्छी तरह से काम करता है अब तक टेम्पलेट्स:

var myModel = new {Name:"World"}; 
var template = "Hello, @Model.Name!"; 
return Razor.Parse(template, myModel); 

लेकिन समस्या यह है मेरे पास है मैं समझ नहीं कैसे उपयोग करने के लिए/रजिस्टर बाहरी उस्तरा दृश्य (.cshtml फ़ाइलें) मेरी विधानसभाओं के अंदर स्थित है।

मैंने कोशिश की अब तक निम्नलिखित:

var template = Razor.Resolve("MyView.cshtml", myModel); 
return template.Run(new ExecuteContext()); 

लेकिन मेरे template चर null है, मेरा अनुमान है कि MyView.cshtml, नहीं पाया जा सकता है पंजीकृत नहीं या सही ढंग से संदर्भित नहीं।

+3

क्या आपने अपनी सीएसटीएमएल फाइलों के लिए विजुअल स्टूडियो में बिल्ड एक्शन: 'एंबेडेड रिसोर्स' सेट किया है? क्या आपने 'टेम्पर सेवा' के साथ 'Razor.SetTemplateService' को कॉन्फ़िगर किया है जो आपके टेम्पलेट्स को सही असेंबली से हल करता है? – nemesv

+0

@nemesv, नहीं मैंने नहीं किया है। क्या आप मुझे सही दिशा में धक्का दे सकते हैं कि 'टेम्पलेट सेवा' को कैसे कार्यान्वित किया जाए जो मेरे टेम्पलेट को हल करता है? धन्यवाद। –

+2

इस तरह मैं इसे करता हूं https://github.com/darrelmiller/HypermediaApiSite/blob/master/HypermediaApiContent/Tools/EmbeddedResolver.cs –

उत्तर

0

हम वीज़र (http://visualstudiogallery.msdn.microsoft.com/1f6ec6ff-e89b-4c47-8e79-d2d68df894ec?SRC=VSIDE) के लिए रेजर जेनरेटर - कस्टम टूल का उपयोग कर रहे हैं।

रेजर विचार डिजाइन समय में पहले से संकलित किए जा रहे हैं और सी # कक्षाओं के रूप में असेंबली में अंतर्निहित हैं। एम्बेडेड संसाधन के रूप में प्रोजेक्ट करने के लिए .cshtml फ़ाइलों को शामिल करने की आवश्यकता नहीं है।

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