[asp.net-mvc-3] MVC3 면도기 : 코드 블록 내에 HTML 표시

내 cshtml 파일에는 다음과 같은 많은 블록이 있습니다.

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

범위가있는 유일한 이유는 html 태그로 둘러싸 지 않으면 “Hello World”가 HTML의 일부임을 인식하도록 다른 방법을 찾을 수 없기 때문입니다. 의미없는 태그를 디스플레이에 추가하지 않는 코드를 피하는 좋은 방법이 있습니까?



답변

@:탈출 하는 데 사용할 수 있습니다 .

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

또는 <text>응답에 출력되지 않은 특수 태그 :

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


답변

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


답변

아래와 같이 텍스트를 추가 할 수 있습니다.

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

@면도기 를 사용할 때는 코드 블록 모드로 전환하십시오. 따라서 위와 같이 텍스트를 지정해야합니다.


답변

<text>Explicit HTML<text>

@(Explicit C#)


답변

많은 개발자들이 위의 많은 방법을 제공했습니다. 여기 MVC 4에서 잘 작동하는 것이 하나 더 있습니다. MVC 3에서도 잘 작동하기를 바랍니다.

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


답변

위의 답변은 훌륭합니다. Scott Guthrie의 기사에 대한 링크를 포함시킬 것입니다. 여기에는 더 많은 예제와 설명이 나와 있기 때문입니다.

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
}


답변