[razor] 면도기보기 엔진에서 @ 문자 탈출

Razor를 뷰 엔진으로 사용하여 샘플 ASP.NET MVC 3 사이트를 만들고 있습니다. 면도기 구문은 @문자 eg로 시작합니다 @RenderBody(). 내 cshtml 페이지에 @test를 쓰면 구문 분석 오류가 발생합니다.

CS0103 : ‘test’라는 이름이 현재 컨텍스트에 없습니다.

‘@’문자를 어떻게 피합니까?



답변

@@ 해야합니다.


답변

면도기 @ 이스케이프 문자를 기호로 …

<img src="..." alt="Find me on twitter as @("@username")" />

또는

<img src="..." alt="Find me on twitter as @("@")username" />


답변

사용 <text></text>하기 쉬운 방법@:


답변

@Html.Raw("@")@@모든 경우에 @@탈출 하지는 않기 때문에 나보다 훨씬 신뢰할 수있는 것 같습니다 .

따라서:

<meta name="twitter:site" content="@twitterSite">

될 것입니다 :

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">


답변

HTML 엔터티 대신의 사용을 선호합니다 @Html.Raw("@").


답변

@@는 위에서 언급 한 Razor보기에서 @의 이스케이프 문자입니다.

그러나 Razor는 ‘@’이 ‘@’일 때 C # (또는 VB.Net) 코드를 표시하는 경우 문제를 해결하려고합니다. 이를위한 주요 용도 중 하나는 Razor보기에서 이메일 주소를 식별하는 것입니다. 이메일 주소에서 @ 문자를 이스케이프 할 필요는 없습니다.


답변

에 대한 질문에 대해서는 @RazorCodePart1 @@ @RazorCodePart2다음 순서를 따라야합니다.

@RazorCodePart1 @:@@ @RazorCodePart2

조금 이상해 보이지만 작동하지만 코드 블록 사이에 문자 ‘@’이 표시됩니다.