मैं एएसपी.नेट एमवीसी 3 और रेजर दृश्यों के साथ पोर्टेबल दृश्यों का उपयोग करने की कोशिश कर रहा हूं क्योंकि यह एक आसान प्लग-इन आर्किटेक्चर बनाने का सबसे अच्छा तरीका है। तो मेरे पास मेरी कक्षा लाइब्रेरी सेटअप है और मेरे पास मेरा दृश्य /Views/Admin/Index.cshtml में स्थित है और इसे एंबेडेड संसाधन के रूप में सेट किया गया है। इसके बाद मैं उस परियोजना को मुख्य वेब एप्लिकेशन प्रोजेक्ट के लिए निर्भरता के रूप में शामिल करता हूं। जब मैं व्यवस्थापक नियंत्रक तक पहुंचने का प्रयास करता हूं, इंडेक्स एक्शन मुझे एक संदेश मिलता है जो उस दृश्य फ़ाइल को नहीं ढूंढ सकता है (इसलिए नियंत्रक को ठीक से शामिल किया जा रहा है)। मुझे लगता है कि यह मुख्य वेब एप्लिकेशन प्रोजेक्ट में देखने की कोशिश कर रहा है, न कि पोर्टेबल क्षेत्रों बाइनरी। पोर्टेबल क्षेत्रों के साथ काम करने के लिए रेज़र विचारों को पाने का कोई तरीका है?एएसपी.नेट एमवीसी 3, रेजर व्यू, और पोर्टेबल एरिया
उत्तर
क्या आप सुनिश्चित करते हैं कि आपने अपने पोर्टेबल क्षेत्र में एंबेडेड संसाधन के रूप में अपना दृश्य चिह्नित किया है?
इसके अलावा मुझे पता चला कि पोर्टेबल क्षेत्रों की अच्छी सुविधा यह है कि आप एम्बेडेड दृश्यों को ओवरराइड कर सकते हैं, इसलिए यदि आप अलग-अलग कोड के साथ एम्बेडेड एक के नाम और स्थान के साथ अपने होस्ट ऐप में कोई दृश्य डालते हैं तो यह प्राथमिकता लेगा एम्बेडेड एक अच्छा !!!
आशा इस
मैं थोड़ी देर के लिए इस विशेष मुद्दे पर संघर्ष कर रहा है में मदद करता है, लेकिन मुझे लगता है कि मैं अंत में यह समझ से बाहर।
फ़ोल्डर संरचना और आपके प्रोजेक्ट के अंदर नामस्थानों को कैसे बुलाया जाता है, यह ठीक से काम करने के लिए बहुत महत्वपूर्ण है!
परियोजना की संरचना पर एक नज़र डालें:
मैं एम्बेडेड उस्तरा विचारों यहाँ के साथ एक पोर्टेबल क्षेत्र की एक काम उदाहरण है।
क्षेत्र का नाम UserAdministration
है, और परियोजना के रूट में UserAdministrationRegistration
कक्षा है, जो UserAdministration
नामस्थान में रहता है। फिर Controllers
, Models
और Views
फ़ोल्डर (बस एक सामान्य एमवीसी प्रोजेक्ट की तरह) और Views
फ़ोल्डर के तहत, फिर से UserAdministration
फ़ोल्डर है जिसमें क्षेत्र के दृश्य शामिल हैं।
कुछ और जो काम करने के लिए एम्बेडेड दृश्यों के लिए बहुत महत्वपूर्ण है: आपको में global.asax.cs
फ़ाइल की विधि में एक नया व्यू इंजन पंजीकृत करना होगा, क्या आपने ऐसा किया था?
PortableAreaRegistration.RegisterEmbeddedViewEngine();
और ... अपना पंजीकरण कक्षा में, सुनिश्चित करें कि आप RegisterArea
विधि है जो 2 मानकों (AreaRegistrationContext context
और IApplicationBus bus
) लेता है ओवरराइड बनाने के लिए, और वहाँ में आधार कार्यान्वयन फोन:
public override void RegisterArea(AreaRegistrationContext context,
IApplicationBus bus)
{
base.RegisterArea(context, bus); // <== very important!
context.MapRoute(
"UserAdministration",
AreaName + "/{controller}/{action}/{id}",
new { controller = "UserAdministration", action = "Index",
id = UrlParameter.Optional }
);
}
आप तो आधार कार्यान्वयन को कॉल न करें, आपको कम से कम
RegisterAreaEmbeddedResources();
यह सुनिश्चित करने के लिए कि आपके एम्बेडेड दृश्य और संसाधन पंजीकृत हैं
इस उत्तर के लिए धन्यवाद, बिल्कुल वही जो मैं ढूंढ रहा था। मुझे अभी भी दृश्य मिल गया त्रुटि नहीं मिली। यह एम्बेडेड के रूप में सेट है लेकिन अभी भी कुछ भी नहीं है। – Pieter
मुझे इसे काम करने के लिए अपनी वेबसाइट में एंबेडेड रिसोर्सवर्टुअलपाथप्रोवाइडर के लिए एक न्यूज पैकेज संदर्भ जोड़ना पड़ा। – Pieter
यह मेरे जैसा था जैसा दिखता है। यह मेरी देव मशीन पर ठीक काम करता है, लेकिन वास्तव में इसे तैनात किए जाने पर लेखन दृश्य फ़ाइलों को नहीं देखता है। मैंने जिन दृश्यों को देखा, उन्हें लॉग इन किया, और यह पूरी तरह से .cshtml फ़ाइलों को छोड़ दिया, हालांकि इसे _layout और _viewstart के लिए मिला। –
मैं Fretje के जवाब में दिए गए निर्देशों का पालन करके इस काम कर मिल गया और उसके बाद भी अपनी वेबसाइट में EmbeddedResourceVirtualPathProviderकरने के लिए एक nuget पैकेज संदर्भ जोड़ें।
बस संदर्भ? इसे हुक करने के लिए आपने क्या किया? –
विजुअल स्टूडियो में, समाधान एक्सप्लोरर में संदर्भों पर राइट-क्लिक करें और "लाइब्रेरी पैकेज संदर्भ जोड़ें" का चयन करें। पॉपअप में "ऑनलाइन" चुनें और "एम्बेडेड रिसोर्सवर्टुअलपाथप्रोवाइडर" के लिए खोजें, फिर इंस्टॉल करें पर क्लिक करें। ध्यान दें कि आपको VS2010 की आवश्यकता है जिसे Nuget पैकेज इंस्टॉलर के लिए सर्विस पैक 1 में अपडेट किया गया था। – Pieter
- 1. रेजर व्यू-एमवीसी 3 एएसपी.नेट
- 2. एएसपी.नेट एमवीसी 3 रेजर
- 3. एएसपी.नेट एमवीसी 3 (रेजर)
- 4. एएसपी.नेट एमवीसी 3 रेजर
- 5. एएसपी.नेट एमवीसी 3 रेजर
- 6. एएसपीएक्स हैंडलर एएसपी.नेट एमवीसी 3 और रेजर
- 7. एएसपी.नेट एमवीसी 3 रेजर - पोस्टबैक
- 8. एचटीएमएल और एएसपी.नेट एमवीसी 3 रेजर
- 9. एएसपी.नेट एमवीसी 3 आरसी - रेजर "देखें" संपत्ति
- 10. एमवीसी 3 - संकलित रेजर व्यू _ViewStart
- 11. एमवीसी 3 एरिया
- 12. एक एमवीसी 3 रेजर व्यू वेरिएबल
- 13. एएसपी.नेट एमवीसी 3 रेजर - ऑटो-पूर्ण ट्यूटोरियल?
- 14. एएसपी.नेट एमवीसी 3 रेजर प्रतिक्रिया। राइट स्थिति
- 15. होस्टिंग एएसपी.नेट एमवीसी 3 रेजर इंजन साइट
- 16. एएसपी.नेट एमवीसी 3 रेजर सिंटेक्स - कास्टिंग
- 17. एएसपी.नेट एमवीसी रेजर
- 18. एएसपी.नेट एमवीसी 3: - स्थानीयकरण स्टोर
- 19. एएसपी.नेट एमवीसी 3
- 20. एएसपी.नेट एमवीसी 3 _Layout.cshtml नियंत्रक
- 21. एएसपी.नेट एमवीसी रेजर
- 22. एएसपी.नेट एमवीसी रेजर अतिरिक्त व्हाइटस्पेस
- 23. एमवीसी 3 रेजर
- 24. एएसपी.नेट एमवीसी 3: स्क्रिप्ट्स फ़ोल्डर
- 25. यदि रेजर एमवीसी 3
- 26. एमवीसी 3 रेजर:
- 27. एमवीसी 3/रेजर: cshtml.Execute() ':
- 28. एमवीसी 3 रेजर
- 29. एएसपी.नेट एमवीसी 3 - पैरामीटर
- 30. एएसपी.नेट एमवीसी 3 - व्यूबैग संपत्ति कोई इंटेलिसेन्स
मुझे लगता है कि पंजीकृत दृश्य इंजन के आदेश पर निर्भर करता है, अगर एम्बेडेड व्यू इंजन पहले पोर्टेबल क्षेत्र के दृश्य रूट प्रोजेक्ट में नियमित दृश्यों को ओवरराइड कर देगा। एक साइड नोट के रूप में मैं कहूंगा कि आप कभी-कभी अपने सभी विचार इंजन साफ़ करके एक छोटा प्रदर्शन लाभ प्राप्त कर सकते हैं और यह सुनिश्चित कर सकते हैं कि आपने केवल अपनी परियोजना में उपयोग किए गए लोगों को पंजीकृत किया हो। Http://insightpassion.com/norbertraus/index.php/2011/04/29/razor-views-performance/ – JohannesH