Я создаю пример сайта ASP.NET MVC 3, используя Razor в качестве движка просмотра. Синтаксис бритвы начинается с @
символа, например @RenderBody()
. Если я пишу @test на своей странице cshtml, это дает мне ошибку разбора
CS0103: имя «тест» не существует в текущем контексте
Как мне избежать символа "@"?
razor
asp.net-mvc-3
ajay_whiz
источник
источник
@
в фигурные скобки. Мне удалось заставить это работать, написав это так:@(@new)
Ответы:
@@
должен сделать это.источник
@RazorCodePart1 @@ @RazorCodePart2
например, литерал @ между двумя фрагментами кода Razor.<style>
тег на моей странице бритвы, который должен включать директиву @media {}, поэтому html-кодирование не вариант; работает только @@Razor @ экранировать символ на символы ...
или
источник
использовать
<text></text>
или более простой способ@:
источник
@Html.Raw("@")
Мне кажется, даже более надежным, чем@@
, поскольку не во всех случаях@@
вырваться.Следовательно:
было бы:
источник
Вместо сущности HTML я предпочитаю использовать
@Html.Raw("@")
.источник
@@ - это escape-символ для @ в представлениях Razor, как указано выше.
Однако Razor пытается разобраться, когда «@» - это просто «@» и где он помечает C # (или VB.Net) код. Одним из основных применений для этого является идентификация адресов электронной почты в представлении Razor - не должно быть необходимости экранировать символ @ в адресе электронной почты.
источник
Для вопроса о
@RazorCodePart1 @@ @RazorCodePart2
, вам нужно последовательность:Я знаю, это выглядит немного странно, но это работает, и вы получите буквальный символ '@' между блоками кода.
источник
У меня просто была такая же проблема. Я объявил переменную, поместив мой текст с @.
источник
эта работа для меня
Или вы можете использовать: @@ Alan_van_Buuren
: D
источник
Вы можете использовать @@ для этой цели. подобно
var email = firstName + '\@@' + domain;
источник
просто добавьте переменную в файл CSHTML
var myVariable = @"@";
и добавьте его в свой макет
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
источник
Я перепробовал все варианты выше и ни один не работал. Вот что я сделал, что сработало:
Я создал строковую переменную и передал в нее весь код шаблона RegEx, затем использовал переменную в html, и Razor с этим справился.
источник
Я не мог заставить что-либо из этого работать внутри моего атрибута-заполнителя, поэтому я использовал специальный символ xml.
Смотрите больше примеров здесь. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
источник
На самом деле @ следует использовать с синтаксисом Razor Keywords или с переменной / моделью для привязки значения.
Например, если тесту присвоено значение, т. Е. @ {Var test = "ABC"}, вы можете получить значение по настройкам, поскольку @test в любом месте является страницей cshtml в html-части. в противном случае просто используйте как @ Html.DisplayName ("test")
Я знаю, что этот вопрос старый, но я попробовал все вышеперечисленное, и он не помог мне избежать символа "@" в полной структуре ASP.NET (MVC 5) внутри URL. Однако, основываясь на ответе Терье Солема, код UTF-8
%40
сработал для меня. это оригинальный URL, который я пытался найти:https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js
и с кодом в нем:
источник