2013-03-29 5 views
10

अगर मैं अपने दृश्य पृष्ठों में से एक में loc निम्नलिखित है के तहत काम नहीं कर रहा:Html.Partial बयान

@* Html.Partial("Form")*@ 

    @{ 
    var role = Convert.ToInt32(Session["Role"]); 
    if (role == 2) 
    { 
     Html.Partial("Form"); 
    } 
} 

Html.Partial("Form") ठीक काम करता है इसके किसी भी बाहर के बयान करता है, तो और सब कुछ ठीक renders जब।

लेकिन जब एक if ब्लॉक के अंदर यह कुछ भी नहीं renders, बयान मारा जाता है, यह सच है, डिबगर ईव्स समारोह पढ़ता है और Form Partial view को जाता है और उस में हर लाइन के माध्यम से चला जाता है, लेकिन अंत में वहाँ पृष्ठ पर उत्पादन नहीं है ।

कृपया मदद

उत्तर

23

आप RenderPartial विधि का उपयोग करना चाहिए जब आप एक कोड ब्लॉक के अंदर कर रहे हैं।

Html.RenderPartial("Form"); 

Html.Partial एक HtmlString जो पृष्ठ के लिए प्रदान की जा होगा अगर यह एक कोड ब्लॉक के अंदर नहीं था देता है। आपके मामले में रेजर आपके विचार को पार करता है और परिणाम को आपके कोड पर वापस कर देता है। चूंकि आप इसे प्रस्तुत करने के लिए कुछ भी नहीं करते हैं, इसलिए आपको आउटपुट नहीं मिलता है।

+0

ओह धन्यवाद .. था कि कुछ की जरूरत की जानकारी .. thankyou – Maven

+0

+1 - मुझे आगे बढ़ रखने ... :) –

+1

+1 - कुछ घंटों तक काम करने की कोशिश कर रहा था क्यों मेरा प्रतिपादन नहीं कर रहा था। इतनी सरल समस्या! –