Escape @ персонаж в движке бритвы - PullRequest
519 голосов
/ 02 сентября 2010

Я создаю пример сайта ASP.NET MVC 3 с использованием Razor в качестве движка просмотра.Синтаксис бритвы начинается с символа @, например @RenderBody().Если я напишу @test на своей странице cshtml, это выдаст мне ошибку синтаксического анализа

CS0103: имя 'test' не существует в текущем контексте

Как мне выйтисимвол '@'?

Ответы [ 14 ]

835 голосов
/ 02 сентября 2010

@@ должен это сделать.

135 голосов
/ 29 января 2013

Razor @ escape-символ к символам ...

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

или

<img src="..." alt="Find me on twitter as @("@")username" />
37 голосов
/ 15 июля 2011

используйте <text></text> или более простой способ @:

32 голосов
/ 25 марта 2016

@Html.Raw("@") кажется мне даже более надежным, чем @@, поскольку не во всех случаях @@ сбежит.

Поэтому:

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

будет:

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
18 голосов
/ 30 марта 2014

Вместо сущности HTML я предпочитаю использовать @ Html.Raw ("@")

12 голосов
/ 13 сентября 2010

@@ - это escape-символ для @ в представлениях Razor, как указано выше.

Однако Razor пытается выяснить, когда «@» - это просто «@» и где он помечает C # (или VB)..Net) код.Одним из основных применений для этого является идентификация адресов электронной почты в представлении Razor - не должно быть необходимости экранировать символ @ в адресе электронной почты.

8 голосов
/ 07 октября 2011

Для вопроса о @RazorCodePart1 @@ @RazorCodePart2 вам нужна последовательность:

@RazorCodePart1 @:@@ @RazorCodePart2

Я знаю, это выглядит немного странно, но это работает и вы получите буквальный символ '@' междукодовые блоки.

6 голосов
/ 22 марта 2015

У меня просто была такая же проблема. Я объявил переменную, поместив мой текст с @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

<meta name="twitter:site" content="@twitterSite">
4 голосов
/ 22 января 2016

эта работа для меня

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

Или можно использовать: @@ Alan_van_Buuren

: D

1 голос
/ 06 октября 2017

просто добавьте переменную в файл CSHTML <code>var myVariable = @"@";

и добавьте ее в свой макет <code><span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...