2012-02-03 10 views
5

यह मेरी पहली पोस्ट है, इसलिए हैलो :)रेज़र सिंटैक्स: ifs और divs के साथ लूप

मैं सशर्त रूप से खुला और बंद करना चाहता हूं। मैं क्या गलत कर रहा हूं?

@foreach (var m in Model.Recipes) 
{ 
    if (left) 
    { 
     <div class="rec-line"> 
    }  

    if (left) 
    {    
     </div> 
    } 
} 
+0

आप वर्णन कर सकते कि वास्तव में आप क्या होने की उम्मीद कर रहे, और वास्तव में क्या हो रहा है? –

+0

आप इस तरह के विभिन्न ब्लॉक में तत्वों को खोल और बंद नहीं कर सकते हैं। आप क्या खत्म करने की कोशिश कर रहे हैं? आप जो करने की कोशिश कर रहे हैं उसे करने का एक बेहतर तरीका हो सकता है। –

+0

यह नीचे हल किया गया है, लेकिन आपकी जिज्ञासा के लिए मैं जोड़े में संग्रह से तत्व सूचीबद्ध कर रहा हूं। इसलिए, हर विषम तत्व पर मैं div खोलता हूं और इसके बाद भी मैं इसे बंद करता हूं। [div] [बाएं] [दाएं] [/ div] [div] ... –

उत्तर

5

आप का उपयोग करके भागने चरित्र का उपयोग करने के रेजर इंजन पता है कि <div> पाठ है यह बताने के लिए की जरूरत है @:

कोड:

@foreach (var m in Model.Recipes) 
{ 
if (left) 
{ 
    @:<div class="rec-line"> 
}  

if (left) 
{    
    @:</div> 
} 
} 
+0

नहीं आप नहीं करते: http://haacked.com/archive/2011/01/06/razor-syntax- quick-Reference.aspx –

+2

@ शार्क - हाँ आप करते हैं। अपने लेख को पढ़ें "' @if (foo) { @: सादा पाठ @bar } '" पढ़ें। स्पष्ट रूप से यदि आप ओप के मूल कोड को संकलित करने का प्रयास करते हैं तो इसमें एक तार्किक त्रुटि होगी और अनुचित रूप से प्रदर्शित होगा। इस स्थिति का समाधान @: मार्कर में जोड़ना है ताकि एचटीएमएल मार्कअप सी # स्टेटमेंट को तोड़ न सके। स्पष्ट होने के लिए, बिना @: यह प्रस्तुत नहीं करेगा, @: यह प्रस्तुत करेगा। –

+1

आह, मैं देखता हूं कि अब आप क्या कह रहे हैं। अच्छी बात। –

संबंधित मुद्दे