MVC3 Razor: visualizzazione di html all'interno di blocchi di codice


131

Nei miei file cshtml ho molti blocchi con cose come questa:

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

L'unico motivo per cui lo span è lì è perché non riesco a trovare nessun altro modo per costringerlo a riconoscere che "Hello World" fa parte del codice HTML a meno che non lo circondi nei tag HTML. C'è un buon modo per sfuggire al codice che non comporta l'aggiunta di tag privi di significato al display?

Risposte:


226

Puoi usare @:per scappare:

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

o il <text>tag speciale che non viene generato nella risposta:

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


10

È possibile aggiungere testo come di seguito:

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

quando usi il @rasoio, passa alla modalità di blocco del codice. Quindi è necessario specificare il testo come sopra.



8

molti sviluppatori hanno fornito molti modi sopra ... eccone uno che funziona bene in MVC 4 .. Spero che funzionerà anche con MVC 3 ..

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

0

Le risposte sopra sono fantastiche. Includerò un link all'articolo di Scott Guthrie su questo, dal momento che mostra alcuni esempi e spiegazioni.

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
}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.