MVC3 Razor: отображение html в блоках кода

В моих файлах cshtml у меня много блоков с такими вещами:

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

Единственная причина, по которой этот диапазон существует, потому что я не могу найти другого способа заставить его признать, что "Hello World" является частью html, если я не окружаю его в тегах html. Есть ли хороший способ избежать кода, который не включает добавление на дисплей бессмысленных тегов?

Ответ 1

Вы можете использовать @: для выхода:

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

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

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

Ответ 2

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

Ответ 3

Вы можете добавить текст, как показано ниже:

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

когда вы используете @ бритву, переключите его в режим кодового блока. Следовательно, вам нужно указать текст, как указано выше.

Ответ 4

<text>Explicit HTML<text>

@(Explicit C#)

Ответ 5

многие разработчики предоставили много способов выше.. вот еще один, который отлично работает в MVC 4.. Я надеюсь, что он будет работать и для MVC 3.

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