MVC3 Razor: Відображення HTML у кодових блоках


131

У своїх файлах cshtml у мене багато блоків з такими матеріалами:

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

Єдиною причиною є те, що я не можу знайти іншого способу змусити його визнати, що "Hello World" є частиною html, якщо я не оточую його в HTML-тегах. Чи є хороший спосіб уникнути коду, який не передбачає додавання безглуздих тегів до дисплея?

Відповіді:


226

Ви можете @:втекти:

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

або спеціальний <text>тег, який не виводиться у відповідь:

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


10

Ви можете додати текст як нижче:

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

коли ви використовуєте @бритву, переключіть її на режим блоку коду. Отже, вам потрібно вказати текст, як зазначено вище.



8

багато розробників надали багато способів вище. Ось ще один, який чудово працює в MVC 4 .. Я сподіваюся, що він буде працювати і для MVC 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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.