2013-08-23 5 views
10

मैं निम्नलिखित MVC 4 उस्तरा कोड है:MVC 4 उस्तरा तो बंटवारे div टैग

@for (int i = 1; i <= 100; i++) { 

    if (currentCol == 1) { 
     Html.Raw("<div class=row>"); 
    @*Need to do this because can't have a open div within a if compiler doesnt like it *@ 
    } if (currentCol == maxCol) { 
     Html.Raw("</div>"); 
    } 
    currentCol++; 
} 

मैं मूल रूप से सशर्त के अलग अलग रास्तों में आरंभ और समाप्ति टैग के साथ हर div class पंक्ति की सामग्री उत्पन्न करने के लिए कोशिश कर रहा हूँ अगर बयान। जब मैं सीधे एचटीएमएल का उपयोग करता हूं, तो संकलक इसे पसंद नहीं करता है और सोचता है कि ब्रैकेट बंद हैं। ऐसा लगता है कि Html.Raw मेरी खोजों का ऑनलाइन समाधान है, लेकिन जब मैं Html.Raw का उपयोग करता हूं, तो जब मैं स्रोत देखता हूं तो div दिखाई नहीं देता है।

क्या किसी को पता है कि क्या हो रहा है?

उत्तर

24

@ साथ Html.Raw कॉल लगाकर का प्रयास करें:

@for (int i = 1; i <= 100; i++) 
{ 
    if (currentCol == 1) 
    { 
     @Html.Raw("<div class=row>"); 
    } 
    if (currentCol == maxCol) 
    { 
     @Html.Raw("</div>"); 
    } 
    currentCol++; 
} 
+0

धन्यवाद डैरिन कि यह किया :) – user2129585

10

उस्तरा HTML और सी #/वीबी वाक्य रचना ब्लॉक, यही वजह है कि टैग को तोड़ने करता है इस प्रकार है। दो काम arounds:

1: उपयोग Html.Raw (आपके द्वारा किए गए के रूप में)

if (condition){ 
    @Html.Raw(@"<div class=""row"">") 
}else{ 
    @Html.Raw("</div>") 
} 

2: विशेष <text>...</text> टैग का प्रयोग करें।

if (condition){ 
    <text> 
    <div class="row"> 
    </text> 
}else{ 
    <text> 
    </div> 
    </text> 
} 

याद रखें @ प्रतीक, रेजर पार्सर के लिए, मतलब है कि आप दूसरे के लिए एक भाषा से एक संक्रमण बना रहे हैं (कोड करने के लिए HTML यद्यपि, या इसके विपरीत)। इसलिए, चूंकि आप if(...) ब्लॉक में हैं और Html.Raw वास्तव में HTML आउटपुट कर रहे हैं, तो आपको @ का उपयोग करने की आवश्यकता है।

2

तुम भी उपयोग कर सकते हैं:

if(condition){ 
@:<div> 
} 

if(condition){ 
@:</div> 
} 
संबंधित मुद्दे