MVC3 Razor: Menampilkan html di dalam blok kode


131

Dalam file cshtml saya, saya memiliki banyak blok dengan hal-hal seperti ini:

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

Satu-satunya alasan rentang adalah karena saya tidak dapat menemukan cara lain untuk memaksanya mengakui bahwa "Hello World" adalah bagian dari html kecuali saya mengelilinginya dalam tag html. Apakah ada cara yang baik untuk menghindari kode yang tidak melibatkan penambahan tag yang tidak berarti ke tampilan?

Jawaban:


226

Anda bisa menggunakan @:untuk melarikan diri:

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

atau <text>tag khusus yang tidak dihasilkan dalam respons:

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


10

Anda dapat menambahkan teks seperti di bawah ini:

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

ketika Anda menggunakan @pisau cukur, alihkan ke mode blok kode. Karenanya Anda perlu menentukan teks seperti di atas.



8

banyak pengembang telah menyediakan banyak cara di atas .. ini adalah satu lagi yang berfungsi dengan baik di MVC 4 .. Saya harap ini akan bekerja untuk MVC 3 juga ..

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

0

Jawaban di atas sangat bagus. Saya akan menyertakan tautan ke artikel Scott Guthrie tentang ini, karena ini menunjukkan beberapa contoh dan penjelasan lebih lanjut.

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
}

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.