2012-06-22 9 views
8

यह मुझे इस दर पर पागल करने जा रहा है। ऑर्चर्ड में किसी थीम के लिए लेआउट.cshtml फ़ाइल के अंदर से, मैं मुख्य निकाय की सामग्री का शीर्षक कैसे निर्धारित कर सकता हूं?ऑर्चर्ड - थीम लेआउट से सामग्री का शीर्षक प्राप्त करना

मैंने आकार ट्रैसर का उपयोग करने का प्रयास किया है लेकिन यह मदद नहीं करता है। इनमें से कोई भी मुझे कोई भी पाठ नहीं देता है।

@Html.Title() 
@Model.Title     
@Model.Content.Parts_Common_Body.ContentItem.TitlePart 
@Model.ContentItem.Parts_Common_Body.ContentItem.TitlePart 

अद्यतन: यहाँ एचटीएमएल जो दिखाना चाहिए अंतिम परिणाम विषय बनाए रखने के लिए, विषय दिखाने से पहले मैं इसके साथ शुरू कर दिया एक तस्वीर के साथ की तरह ही नज़र आना चाहिए क्या। यह एचटीएमएल उन हिस्सों का सिर्फ एक स्निपेट है जिनसे मैं चिंतित हूं। चित्र में, खोज सामग्री हैडर जोन में है।

<div id="wrapper-header-inner"> 
     <div id="header-inner"> 
     @Zone(Model.ContentHeader) 
     <h1 class="pagetitle"> 
      Title Here 
     </h1> 
     </div><!-- #header-inner --> 
</div><!-- #wrapper-header-inner --> 
} 


<div id="wrapper-content"> 
    <div id="content"> 
     @if(Model.Content != null) { 
     <div class="main" class="@mainContentClass"> 
      @if(Model.Content != null && Model.LeftAside == null && Model.RightAside == null) { 
       <div id="maincontentFull" class="positionleft"> 
        @Zone(Model.Content) 
       </div> 
      } 
      @* Other layout possabilities if left and/or right asides are present *@ 
     </div> 
     } 
    </div> 
</div> 

Snapshot of the resulting layout

उत्तर

4

अनुवर्ती के रूप में, ऑर्चर्ड के अपडेट के बाद से मैंने इस प्रश्न से पूछा है कि कुछ हिस्सों को अन्य क्षेत्रों में दोबारा शुरू करने के लिए placement.info फ़ाइल का उपयोग करने की क्षमता शामिल है, असल में मुझे जो कुछ मैं ढूंढ रहा था उसे पूरा करने देता हूं।

<Placement> 
    <Match ContentType="Page"> 
    <Place Parts_Title="/TitleZone"/> 
    </Match> 
</Placement> 
0

आप के लिए यह काम करता है?

@Html.Title() 

यदि आप पृष्ठ शीर्षक की तलाश में हैं तो यह काम करना चाहिए। हालांकि, अगर आप सीधे उपयोग करने के लिए TitlePart देख रहे हैं ...

@Model.Title 

यह काम करता है वहाँ कोड है कि यह करता है की एक पंक्ति है अगर आप Parts.Title टेम्पलेट में लग रही है क्योंकि ...

@{ 
    Layout.Title = Model.Title; 
} 
+3

उनमें से कोई भी मुझे शीर्षक नहीं देता है। उन्हें आउटपुट भी नहीं लगता है, मुझे लगता है कि वे SharpClay ऑब्जेक्ट्स हैं। जो लचीलापन के लिए उतने ही अच्छे हैं, वास्तव में उन गुणों/विधियों को वास्तव में मौजूद करने का प्रयास करने और ट्रैक करने के लिए परेशान हैं। यह हवा में यादृच्छिक रूप से शूटिंग की तरह है और यह देखने का इंतजार कर रहा है कि कोई पक्षी आकाश से गिरता है या नहीं। –

+0

हां, यह व्यापार-बंद है। मैं इस पर बर्ट्रैंड के साथ हूं, आप क्या करने की कोशिश कर रहे हैं? यह थोड़ा पीछे की ओर लगता है। –

+0

अच्छी तरह से मेरे पास एक थीम है जिसे मैं कार्यान्वित करने की कोशिश कर रहा हूं। और जिस विषय के साथ मैं काम कर रहा हूं वह पृष्ठ को डीओएम से आगे खींचता है जिसमें पृष्ठ का शीर्षक होता है। लेकिन क्योंकि यह मुख्य पृष्ठ सामग्री की तुलना में एक अलग स्थान पर है, मुझे नहीं पता कि शीर्षक को कैसे रखा जाए क्योंकि यह सामग्री क्षेत्र में स्थानीय क्षेत्र नहीं होगा, अगर यह समझ में आता है? मैं एक मिनट में HTML के उदाहरण के साथ प्रश्न अपडेट करूंगा ... –

2

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

यदि आप उस आइटम के शीर्षक पर जाना चाहते हैं जो शीर्ष-स्तर सामग्री क्षेत्र में प्रस्तुत किया जाता है, तो लेआउट वास्तव में उस पर देखने के लिए एक अच्छी जगह नहीं है। मुझे यह जानने की आवश्यकता होगी कि आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं लेकिन यह पीछे की ओर लगता है। असल में, आप यह भी नहीं मान सकते कि ऐसी एक सामग्री वस्तु है, या केवल एक ही होगा।

तो यह वास्तव में क्या है कि आप ऐसा करने की कोशिश कर रहे हैं?