Razor ViewEngine : "@"기호를 어떻게 이스케이프합니까?


101

Twitter @Anywhere API와 함께 ASP.NET MVC3에서 일부 Twitter 핸들을 출력하려고하는데 Razor보기에서 "@"기호를 실제로 이스케이프하는 방법을 알아낼 수 없었습니다.

Razor에서 "@"문자를 이스케이프하기위한 구문이 무엇인지 아는 사람이 있습니까?

나는 사용해 보았고 <text></text>그 결과 JIT 오류가 발생합니다.


2
HTML 엔티티를 사용할 수도 있습니다 &#64;.
rsenna 2014

답변:


143

@ 기호를 이스케이프하려면 @@을 사용해야합니다.

주의해야 할 한 가지 중요한 점은 @ 기호가 이메일 주소 내에있을 때 이스케이프 할 필요가 없다는 것입니다. Razor는 스스로 알아낼 수있을만큼 똑똑해야합니다.


4
<a href="" title="this @@ won't work"> </a>, VS의 구문 오류와 런타임의 파서 오류.
티엔 마

1
@Tien은 여기에서 마지막 HTML 문자 코드가 나를 위해 일한 것을 참조하십시오 : stackoverflow.com/a/13584640/84206
AaronLS

25

Twitter 메타 태그를 추가하는 경우

트위터 사용자 이름은 다음과 같습니다. foobar

다음과 같아야합니다

<meta name="twitter:site" content=@("@foobar")>

16

CSS 코드에서 @ 기호를 주석 처리해야하고 @@ 만 작동하지 않으면 다음을 사용하십시오.

@("@@font-face"){ ... css ...}

1
HTML 엔터티가 CSS 내에서 유용하지 않기 때문에 이것이 가장 좋은 방법입니다.
ChrisF

2

나는 또 다른 이상한 경우가 있었다 : '@' + @Model.SomeProperty링크 href로 전달 .

이 경우에 대한 최상의 솔루션 은 유사한 질문에 대한 답변 에서 IMO가 제공되었습니다 . html 코드를 사용하는 동안 @@및 둘 다 @:작동하지 않으면 &#64;상황이 복잡해집니다.

그래서 내 코드는 <a href="~/path/?query=@('@')@Model.SomePropery">

@Html.Raw('@')@Model.SomePropery 잘 작동했을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.