2011-02-01 4 views
3

... @ 코드 블록을 시작하지만, @*이 무엇을 않는 내가 면도기 알고ASP.NET MVC3 면도기 - @ *는 무엇을합니까? 이 문장에 대한 구글 검색을 꽤 어려운 일 이후

? 내가 VS에서 말할 수있는 한, 주석 블록을 시작합니다. 그것이 /*과 다른 경우 어떻게됩니까?

+0

'@ :'는 미리 인코딩 된 HTML이 아닙니다. Razor 파서가 마크 업 컨텍스트에서 다음 줄 문자가 나타날 때까지 마크 업 모드로 전환하는 것입니다. – marcind

+0

@marcind 나는 잘못 알았다. 그것을 반영하도록 수정 된 질문. –

답변

6

@ * 서버 측 주석이다 :

<p> 
    /* comment 1 */ 
    @* comment 2 *@ 
    <!-- comment 3 --> 
    @{ /* comment 4 */ } 
</p> 
:

이 같은 코드가있는 경우 서버 모드가 아니기 때문에

의견 1이 작동하지 않습니다. 그 코드는 브라우저에 보내지고, 브라우저는 그것을 보여줄 것입니다. 왜냐하면/*은 HTML 주석이 아니기 때문입니다.

기타 의견 3이 (가) 클라이언트에게 전송됩니다. 그리고 심지어는 @ 블록이 포함되어 있으면 서버에서 구문 분석되고 실행됩니다.

댓글 2와 4는 회선을 통해 전송되지 않습니다. 그러나 Nr 4는 약간 추한 것입니다.

1

은에서 : ASP.NET 면도기 의견을 http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax

, 당신은 @ *로 ​​주석을 시작하고 * @로 끝. 주석은 한 행 또는 여러 행에있을 수 있습니다.

/* */은 C# 구문의 주석이므로 /*<% %> 블록에서만 적용됩니다. <% %> 블록 외부에서 @*을 쓸 수 있습니다. 같은 그래서 대신 쓰기 의견

<% /* This is 
a multiline comment */ %> 

그것은 같이 쓸 수있다 :

@* This is 
a multiline comment *@ 
+0

+1이지만,/* 여전히 @ {} 블록 내부에서 작동합니다 (물론 면도기는 <% %>을 사용하지 않습니다.) –