MVC3 रेजर: कोड ब्लॉक के भीतर html प्रदर्शित करना


131

मेरी cshtml फ़ाइलों में इस तरह से सामान के साथ बहुत सारे ब्लॉक हैं:

@if(Model.foo)
{
    <span>Hello World</span>
}

एकमात्र कारण स्पैन है, क्योंकि मुझे इसे पहचानने के लिए मजबूर करने का कोई अन्य तरीका नहीं मिल रहा है कि "हैलो वर्ल्ड" html का हिस्सा है जब तक कि मैं इसे html टैग में घेर नहीं लेता। क्या कोड से बचने का एक अच्छा तरीका है जिसमें प्रदर्शन में अर्थहीन टैग जोड़ना शामिल नहीं है?

जवाबों:


226

आप @:भागने के लिए उपयोग कर सकते हैं:

@if(Model.foo)
{
    @:Hello World
}

या विशेष <text>टैग जो प्रतिक्रिया में आउटपुट नहीं है:

@if(Model.foo)
{
    <text>Hello World</text>
}


10

आप नीचे दिए अनुसार पाठ जोड़ सकते हैं:

@if(Model.foo)
{
    @:Hello World
}

जब आप @रेजर का उपयोग करते हैं तो इसे कोड ब्लॉक मोड पर स्विच करें। इसलिए आपको ऊपर दिए गए पाठ को निर्दिष्ट करने की आवश्यकता है।



8

कई डेवलपर्स ने ऊपर कई तरीके प्रदान किए हैं .. यहां एक और है जो एमवीसी 4 में ठीक काम कर रहा है .. मुझे उम्मीद है कि यह एमवीसी 3 के लिए काम करेगा।

@if(Model.foo)
{
    @Html.Label("Hello World")
}

0

उपरोक्त उत्तर बहुत अच्छे हैं। मैं इस पर स्कॉट गुथरी के लेख का लिंक शामिल करने जा रहा हूं, क्योंकि यह कुछ और उदाहरण और स्पष्टीकरण दिखाता है।

https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

@if (p.UnitsInStock == 0 {
  <text>
    Donec in ante vitae purus consequat laoreet ut elementum
    purus. Ut ut tempus nulla, quis ultrices est. Integer
    pharetra ante in lectus porta, a lacinia ex faucibus. 
    Aliquam magna risus, pretium vel neque at, laoreet 
    ultrices lectus. Morbi posuere luctus risus. Nullam 
    tincidunt massa egestas nunc tempor scelerisque.  
  </text>
}


@if (p.UnitsInStock == 0 {
  @: Line 1
  @: Line 2
  @: Line 3
}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.