ビューエンジンとしてRazorを使用してサンプルASP.NETMVC3サイトを作成しています。かみそりの構文は@
文字で始まります@RenderBody()
。cshtmlページに@testと書くと、解析エラーが発生します
CS0103:名前'test'は現在のコンテキストに存在しません
'@'文字をエスケープするにはどうすればよいですか?
ビューエンジンとしてRazorを使用してサンプルASP.NETMVC3サイトを作成しています。かみそりの構文は@
文字で始まります@RenderBody()
。cshtmlページに@testと書くと、解析エラーが発生します
CS0103:名前'test'は現在のコンテキストに存在しません
'@'文字をエスケープするにはどうすればよいですか?
@@
それをする必要があります。
かみそり@エスケープ文字をシンボルに..
<img src="..." alt="Find me on twitter as @("@username")" />
また
<img src="..." alt="Find me on twitter as @("@")username" />
@Html.Raw("@")
@@
すべての場合@@
に逃げるわけではないので、私には、よりもさらに信頼できるようです。
したがって:
<meta name="twitter:site" content="@twitterSite">
だろう:
<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
使用<text></text>
またはより簡単な方法@:
HTMLエンティティの代わりに、の使用を好みます@Html.Raw("@")
。
@@は、上記のRazorビューでの@のエスケープ文字です。
ただし、Razorは、「@」が単なる「@」であり、C#(またはVB.Net)コードをマークしている場合に解決しようとします。これの主な用途の1つは、Razorビュー内の電子メールアドレスを識別することです。電子メールアドレスの@文字をエスケープする必要はありません。
についての質問について@RazorCodePart1 @@ @RazorCodePart2
は、次のシーケンスを実行する必要があります。
@RazorCodePart1 @:@@ @RazorCodePart2
少し奇妙に見えますが、機能し、コードブロック間にリテラル文字「@」が表示されます。
私はちょうど同じ問題を抱えていました。@を使用してテキストを配置する変数を宣言しました。
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="twitter:site" content="@twitterSite">
私のためのこの仕事
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
またはyoyは使用できます:@@ Alan_van_Buuren
:D
この質問が古いことは知っていますが、上記のすべてを試しましたが、URL内のASP.NETフレームワーク(MVC 5)の文字「@」をエスケープするのに役立ちませんでした。しかし、Terje Solemの回答に基づくと、UTF-8コード%40
は私のために機能しました。これは私が到達しようとしていた元のURLです:
https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js
これは私のコードで私のために働いたものです:
https://unpkg.com/%40google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js
上記のすべてのオプションを試しましたが、どれも機能しませんでした。これは私がうまくいったことです:
@{
string str = @"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$";
}
<td>Email</td>
<td>
<input type="text" id="txtEmail" required name="email" pattern=@str />
</td>
文字列変数を作成し、それにすべての正規表現パターンコードを渡してから、htmlで変数を使用しましたが、Razorはそれでかっこいいものでした。
この目的で@@を使用できます。好きvar email = firstName + '\@@' + domain;
CSHTMLファイルに変数を追加するだけです
var myVariable = @"@";
レイアウトに追加します
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
これらのいずれもプレースホルダー属性内で機能させることができなかったため、xml特殊文字を使用しました。
<input type="text" placeholder="fex: firstname@lastname.com"/>
ここで他の例を参照してください。 https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
実際には、@はRazor構文のキーワードまたは変数/モデルとともに使用して値をバインドする必要があります。
たとえば、テストに値が割り当てられている場合、つまり@ {var test = "ABC"}の場合、@ testはhtml部分のcshtmlページであるため、設定によって値を取得できます。それ以外の場合は、@ Html.DisplayName( "test")として簡単に使用できます。