web-dev-qa-db-ja.com

Razor ViewEngine:「@」記号をエスケープするにはどうすればよいですか?

Twitter @Anywhere APIと組み合わせてASP.NET MVC3でTwitterハンドルを出力しようとしていますが、Razorビューで「@」記号を実際にエスケープする方法を理解できていません。

Razorで「@」文字をエスケープするための構文が誰か知っていますか?

<text></text>を使用してみましたが、JITエラーが発生します。

94
Aaronontheweb

@記号をエスケープするには、@@を使用する必要があります。

注意すべき重要な点の1つは、電子メールアドレス内に@記号が存在する場合、@記号をエスケープする必要がないことです。かみそりは、それ自体でそれを理解するのに十分スマートでなければなりません。

133
JasCav

Twitterメタタグを追加する場合

あなたのTwitterユーザー名は、たとえば、blrbr(私に従ってください;))

このように見えるはずです

<meta name="Twitter:site" content=@("@blrbr")>
22
Matt

cssコードで@記号をコメントする必要があり、@@だけが機能しない場合は、これを使用してください:

@("@@font-face"){ ... css ...}
15
Lin-Art

さらに別の奇妙なケースがありました:_'@' + @Model.SomeProperty_をリンクhrefに渡します。

この場合の最善の解決策は、IMOを this answer で同様の質問に与えたものです。 _@@_と_@:_の両方は、htmlコード_&#64;_を使用すると複雑になりますが機能しませんでした。

したがって、私のコードは<a href="~/path/?query=@('@')@Model.SomePropery">でした

@Html.Raw('@')@Model.SomeProperyも同様に機能します。

2
Tiberiu Craciun