मैं _viewstart.cshtml का उपयोग अपने विचारों के लिए एक ही रेजर लेआउट को स्वचालित रूप से असाइन करने के लिए कर रहा हूं ।
यह इस तरह दिखता है कि मेरे दृश्य फ़ोल्डर की जड़ में एक मृत सरल फ़ाइल है:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
यह हर एक दृश्य में @Layout निर्देश जोड़ने की तुलना में अधिक DRY है।
हालाँकि, यह रेजर आंशिक विचारों के लिए एक समस्या बन जाता है , क्योंकि वे _viewstart.cshtml की सामग्री चलाते हैं और इसलिए गलत तरीके से खुद को एक लेआउट असाइन करते हैं, जो उन्हें, उम, अब आंशिक नहीं बनाता है।
यहाँ एक काल्पनिक परियोजना है, जिसमें _viewstart.cshtml फ़ाइल, साझा _layout.shtml फ़ाइल और एक आंशिक दृश्य ("AnonBar.cshtml") दिखा रहा है।
वर्तमान में, जिस तरह से मैं इसके आसपास हो रहा हूं वह निम्नलिखित लाइन को प्रत्येक आंशिक दृश्य में जोड़कर है:
@{
Layout = "";
}
यह रेजर में एक आंशिक के रूप में एक दृश्य को दर्शाने का गलत तरीका लगता है। (ध्यान दें कि वेब प्रपत्र दृश्य इंजन के विपरीत, फ़ाइल एक्सटेंशन आंशिक विचारों के लिए समान है।)
अन्य विकल्प जिन पर मैंने विचार किया लेकिन वे और भी बुरे हैं:
- सभी आंशिक विचारों को एक सामान्य फ़ोल्डर में रखना, ताकि वे एक सामान्य _viewstart.cshtml साझा कर सकें। यह उनके नियंत्रक के रूप में एक ही फ़ोल्डर में होने वाले विचारों के सम्मेलन को तोड़ देता है।
- आंशिक विचारों का उपयोग नहीं करना।
क्या यह कुछ ऐसा है जो अभी भी रेज़र व्यू इंजन टीम द्वारा दूर किया जा रहा है, या क्या मुझे एक मौलिक अवधारणा याद आ रही है?