2011-10-14 15 views
6

के भीतर आंशिक दृश्य एम्बेड करें मेरे पास आंशिक दृश्य है जिसमें एक बेनर के साथ एक div होता है जिसे मैं सप्ताह में एक बार बदलता हूं। यह बैनर 10 पृष्ठों के भीतर एम्बेडेड है जिसमें एक ही लेआउट है।mvc3 किसी अन्य

Index.cshtml या AboutUs.cshtml, की तरह एक पेज दें दोनों किया जा रहा आंशिक दृश्य और मेरे सवाल _Layout.cshtml laypout चल रहा है:

मैं Index.cshtml या AboutUs.cshtml कि बैनर renders में कोड Inser कर सकते हैं .cshtml?

कुछ की तरह:

Index.cshtml या AboutUs.cshtml अंदर

मेरे पास है @ Html.Renderbanner ("banner.cshtml");

उत्तर

6

हाँ,

@{ Html.RenderPartial("_Banner"); } 

अपने साझा दृश्य फ़ोल्डर में, आंशिक दृश्य जोड़ सकते हैं और इसे कहते _Banner.cshtml

0

ज़रूर, तुम हमेशा किए जा सकेंगे:

@Html.Partial("Banner") 
किसी भी दृश्य से

या आंशिक दृश्य यह उस स्थान पर Banner.cshtml आंशिक प्रदान करेगा जहां आपने यह सहायक कहा था।

1

@ एचटीएमएल.रेंडरपार्टियल ("YourViewName") का उपयोग करें;

0

पहला, केवल स्पष्टीकरण के लिए: क्या इंडेक्स और इसके बारे में आपके परिदृश्य में वास्तव में आंशिक विचार हैं? यही कारण है कि मेरी सलाह बदल सकता है, लेकिन आम तौर पर मैं तीन विकल्प देखें:

  1. उस्तरा हेल्पर, निम्न कोड के साथ App_Code में Banner.cshtml बनाएँ:

    @helper Show(){ 
        <img src="mybanner.png"/> 
    } 
    

    फिर Index.cshtml में फोन :

    @Banner.Show() 
    
  2. एचटीएमएल हेल्पर एक्सटेंशन थोड़ा overkill यहाँ शायद (वेब ​​पर ट्यूटोरियल देख)

  3. आंशिक देखें: बनाएँ "_MyBanner.cshtml" और Index.cshtml में निम्नलिखित का उपयोग करें:

    @Html.Partial("_MyBanner"); 
    

(संख्या 3 वह सूचकांक और इसके बारे में भी आंशिक विचार हैं, लेकिन 1 जिसे मैं चुनता हूं, वह मुश्किल हो सकता है।)

नोट: एचटीएमएल। पार्टियल और एचटीएमएल। रेंडरपार्टियल के बीच एक अंतर है। उत्तरार्द्ध सीधे आउटपुट स्ट्रीम को लिखता है और आपको इसे कोष्ठक में कॉल करने की आवश्यकता होगी। एमवीसी AFAIK में एचटीएमएल। पार्टियल का उपयोग करने के लिए यह सबसे अच्छा अभ्यास है।

0

यदि आप के बारे में में secction देखने की जरूरत है आप layout.cshtml

@if (IsSectionDefined("Sidebar")) 
    { 
     <div id="page"> 
      <!-- end #content --> 
      <div id="content"> 
       @RenderBody() 
      </div> 
      <div id="sidebar"> 
       @RenderSection("Sidebar", required: false) 
      </div> 
      <div style="clear: both;"> 
       &nbsp;</div> 
     </div> 
     <!-- end #page --> 
     <!-- end #sidebar --> 

    } 
    else 
    { 
     <div id="page"> 
      <!-- end #content --> 
      <div id="content2"> 
       @RenderBody() 
      </div> 
      <div style="clear: both;"> 
       &nbsp;</div> 
     </div> 
     <!-- end #page --> 
     <!-- end #sidebar --> 

    } 

में एक RenderSection बना सकते हैं।cshtml

उपयोग

@section Sidebar{ 
    @Html.Partial("_yourbanner") 
} 

अगर आप न बैनर की जरूरत है यह शामिल नहीं है