के साथ सहायता मैं एएसपी.नेट वेबफॉर्म/एमवीसी के लिए रनटाइम समग्र संसाधन लाइब्रेरी पर काम कर रहा हूं। मैं वेबकंट्रोल के माध्यम से मानक एएसपी.नेट वेबफॉर्म दोनों का समर्थन करता हूं और हाल ही में एएसपी एमवीसी एचटीएमएल हेल्पर्स के लिए समर्थन भी जोड़ा है। एक सुविधा जो मैं वर्तमान में वेबफॉर्म वेबकंट्रोल के साथ समर्थन करता हूं वह "आंशिक" संसाधन परिभाषाओं की अवधारणा है जहां संसाधन को मास्टर/व्यू पेज आदि पर जोड़ा जा सकता है।एएसपी.नेट एमवीसी एचटीएमएलहेल्पर एपीआई डिजाइन
एमवीसी समकक्ष को लागू करते समय, मुझे यकीन नहीं है कि सबसे अच्छा क्या है अभ्यास है?
मास्टर पृष्ठ
<% using (Html.CreateCompositeResourcePartContext())
{
Html.CompositeCssResourcePart(
"ResourceName",
new[] { "/Styles/SharedStyle1.css", "/Styles/SharedStyle2.css" }
);
%>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<% } %>
कौन सा सिर ContentPlaceholder के चारों ओर एक "संदर्भ" आवरण बना देगा: मैं वर्तमान की तरह एक डिजाइन कुछ की ओर झुकाव रहा हूँ।
पृष्ठ दृश्य
<asp:Content ID="HeadContentPlaceholder" ContentPlaceHolderID="head" runat="server">
<% Html.CompositeCssResourcePart(
"ResourceName",
new[]
{
"/Styles/PageStyle5.css",
"/Styles/PageStyle6.css",
"/Styles/PageStyle7.css"
}) %>
</asp:Content>
तो किसी भी दृश्य पृष्ठों आंशिक संसाधन परिभाषा जैसा कि ऊपर देखा विस्तार कर सकते हैं।
सवाल मेरे पास है:
1) मेरे सभी अन्य HtmlHelpers के विपरीत, इन एक्सटेंशन तुरंत बाहर एचटीएमएल टुकड़ा नहीं लिखते बल्कि जब तक संदर्भ निपटान किया जाता है रुको। क्या इन एक्सटेंशन को इसके बजाय ViewContext (या कुछ अन्य ऑब्जेक्ट) बंद होना चाहिए?
2) मुझे व्यक्तिगत रूप से लगता है कि "उपयोग" की अवधारणा को अलग-अलग BeginCompositeResourcePartContext/EndCompositeResourcePartContext कॉल के बजाय कोड के ब्लॉक को लपेटने के लिए समझ में आता है, क्या आप सहमत होंगे? यदि नहीं, अलग विधि कॉल के बारे में बेहतर क्या है?
उपर्युक्त पर कोई भी प्रतिक्रिया बहुत सराहना की जाएगी। यदि अधिक जानकारी की आवश्यकता है, तो कृपया मुझे बताएं।
संपादित
स्पष्ट करने के लिए एक भी संसाधन के लिए ... मास्टर पेज के सिर और पक्ष में बाद में संदर्भ के अंदर ब्लॉक एक दृश्य के पेज एक साथ संयुक्त कर दिया जाएगा। तो जब CompositeResourcePartContext के संदर्भ निपटान किया जाता है, सभी छह फ़ाइलें केवल एक सीएसएस फ़ाइल करने के लिए संयुक्त और एक ही कड़ी टैग (या स्क्रिप्ट, सीएसएस स्प्राइट आदि)
<link rel="stylesheet" type="text/css" href="/MyMergedStyleSheet.css" />
मुझे यकीन नहीं है कि यह सहायक आपको क्या खरीदता है। क्या यह नहीं है कि सामग्री प्लेसहोल्डर पहले स्थान पर हैं? –
@ जॉन - विचार यह है कि प्रत्येक कॉल Html.CompositeCssResourcePart एक समग्र संसाधन के एक भाग को परिभाषित करेगा (यानी, जब संदर्भ का निपटारा किया जाता है तो एक फ़ाइल में एक साथ विलय किया जाएगा)। इस प्रकार, मुझे किसी लिंक/स्क्रिप्ट टैग को प्रस्तुत करने से पहले सभी भागों को एकत्रित करने की विधि की आवश्यकता होती है क्योंकि यूआरएल संदर्भित सभी संसाधनों से उत्पन्न होता है। समझ में आता है? –
'उपयोग' इस संदर्भ में समझ में आता है, लेकिन मैं उससे परे टिप्पणी नहीं कर सकता। –