630

ビューエンジンとしてRazorを使用してサンプルASP.NETMVC3サイトを作成しています。かみそりの構文は@文字で始まります@RenderBody()。cshtmlページに@testと書くと、解析エラーが発生します

CS0103:名前'test'は現在のコンテキストに存在しません

'@'文字をエスケープするにはどうすればよいですか?

4

15 に答える 15

1027

@@それをする必要があります。

于 2010-09-02T12:02:21.733 に答える
173

かみそり@エスケープ文字をシンボルに..

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

また

<img src="..." alt="Find me on twitter as @("@")username" />
于 2013-01-29T13:19:12.500 に答える
44

@Html.Raw("@")@@すべての場合@@に逃げるわけではないので、私には、よりもさらに信頼できるようです。

したがって:

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

だろう:

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
于 2016-03-25T20:46:02.020 に答える
40

使用<text></text>またはより簡単な方法@:

于 2011-07-14T20:13:46.137 に答える
26

HTMLエンティティの代わりに、の使用を好みます@Html.Raw("@")

于 2014-03-30T16:30:54.353 に答える
12

@@は、上記のRazorビューでの@のエスケープ文字です。

ただし、Razorは、「@」が単なる「@」であり、C#(またはVB.Net)コードをマークしている場合に解決しようとします。これの主な用途の1つは、Razorビュー内の電子メールアドレスを識別することです。電子メールアドレスの@文字をエスケープする必要はありません。

于 2010-09-13T13:31:21.303 に答える
8

についての質問について@RazorCodePart1 @@ @RazorCodePart2は、次のシーケンスを実行する必要があります。

@RazorCodePart1 @:@@ @RazorCodePart2

少し奇妙に見えますが、機能し、コードブロック間にリテラル文字「@」が表示されます。

于 2011-10-07T18:37:49.380 に答える
7

私はちょうど同じ問題を抱えていました。@を使用してテキストを配置する変数を宣言しました。

@{
   var twitterSite = "@MyTwitterSite";
}

...

<meta name="twitter:site" content="@twitterSite">
于 2015-03-22T15:30:23.070 に答える
5

私のためのこの仕事

<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">

またはyoyは使用できます:@@ Alan_van_Buuren

:D

于 2016-01-22T05:20:14.263 に答える
2

この質問が古いことは知っていますが、上記のすべてを試しましたが、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
于 2020-03-03T18:06:07.647 に答える
1

上記のすべてのオプションを試しましたが、どれも機能しませんでした。これは私がうまくいったことです:

@{
    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はそれでかっこいいものでした。

于 2015-10-27T20:24:32.923 に答える
1

この目的で@@を使用できます。好きvar email = firstName + '\@@' + domain;

于 2016-11-24T08:36:54.180 に答える
1

CSHTMLファイルに変数を追加するだけです var myVariable = @"@";

レイアウトに追加します <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>

于 2017-10-06T12:24:08.943 に答える
1

これらのいずれもプレースホルダー属性内で機能させることができなかったため、xml特殊文字を使用しました。

<input type="text" placeholder="fex: firstname&#64;lastname.com"/>

ここで他の例を参照してください。 https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html

于 2018-01-27T10:56:42.170 に答える
0

実際には、@はRazor構文のキーワードまたは変数/モデルとともに使用して値をバインドする必要があります。

たとえば、テストに値が割り当てられている場合、つまり@ {var test = "ABC"}の場合、@ testはhtml部分のcshtmlページであるため、設定によって値を取得できます。それ以外の場合は、@ Html.DisplayName( "test")として簡単に使用できます。

于 2018-06-25T09:53:08.803 に答える