Tworzę przykładową witrynę ASP.NET MVC 3, używając Razor jako silnika przeglądania. Składnia maszynki do golenia zaczyna się od @
znaku, np @RenderBody()
. Jeśli piszę @test na mojej stronie cshtml, pojawia się błąd analizy
CS0103: Nazwa „test” nie istnieje w bieżącym kontekście
Jak mogę uciec od znaku „@”?
razor
asp.net-mvc-3
ajay_whiz
źródło
źródło
@
w nawiasach klamrowych. Udało mi się to uruchomić, pisząc w ten sposób:@(@new)
Odpowiedzi:
@@
powinien to zrobić.źródło
@RazorCodePart1 @@ @RazorCodePart2
np. Literał @ między dwoma fragmentami kodu Razor.<style>
tag na mojej stronie maszynki do golenia, który musi zawierać dyrektywę „@media {}”, więc kodowanie HTML nie wchodzi w grę; działa tylko @@.Razor @ escape char to symbols ...
lub
źródło
użyć
<text></text>
lub w łatwiejszy sposób@:
źródło
@Html.Raw("@")
wydaje mi się jeszcze bardziej niezawodny niż@@
, ponieważ nie we wszystkich przypadkach@@
ucieknie.W związku z tym:
byłoby:
źródło
Zamiast encji HTML wolę używać
@Html.Raw("@")
.źródło
@@ jest znakiem ucieczki @ w widokach Razor, jak wspomniano powyżej.
Razor jednak próbuje się dowiedzieć, kiedy „@” jest po prostu „@” i gdzie oznacza kod C # (lub VB.Net). Jednym z głównych zastosowań tego jest identyfikacja adresów e-mail w widoku Razor - nie powinno być konieczności zmiany znaku @ w adresie e-mail.
źródło
W przypadku pytania
@RazorCodePart1 @@ @RazorCodePart2
musisz wykonać sekwencję:Wiem, wygląda to trochę dziwnie, ale działa i da ci dosłowny znak „@” między blokami kodu.
źródło
Właśnie miałem ten sam problem. Zadeklarowałem zmienną umieszczającą mój tekst za pomocą @.
źródło
ta praca dla mnie
Lub możesz użyć: @@ Alan_van_Buuren
:RE
źródło
Możesz użyć @@ w tym celu. Lubić
var email = firstName + '\@@' + domain;
źródło
wystarczy dodać zmienną w pliku CSHTML
var myVariable = @"@";
i dodaj go do swojego układu
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
źródło
Wypróbowałem wszystkie powyższe opcje i żadna nie działała. To, co zrobiłem, działało:
Utworzyłem ciąg znaków zmienny i przekazałem do niego cały kod wzoru RegEx, a następnie użyłem zmiennej w html, a Razor był z tym spoko.
źródło
Nie mogłem zmusić żadnego z nich do działania wewnątrz mojego atrybutu zastępczego, więc użyłem znaku specjalnego xml.
Zobacz więcej przykładów tutaj. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
źródło
Właściwie @ powinno być używane ze słowami kluczowymi składni Razor lub do zmiennej / modelu w celu powiązania wartości.
Na przykład: jeśli testowi przypisano wartość tj. @ {Var test = "ABC"}, wówczas można uzyskać wartość przez ustawienia, ponieważ @test w dowolnym miejscu jest stroną cshtml w części HTML. w przeciwnym razie proste użycie jako @ Html.DisplayName („test”)
źródło
Wiem, że to pytanie jest stare, ale wypróbowałem wszystkie powyższe i nie pomogło mi to uniknąć znaku „@” w pełnym środowisku ASP.NET (MVC 5) w adresie URL. Jednak w oparciu o odpowiedź Terje Solema, kod UTF-8
%40
działał dla mnie. to jest oryginalny adres URL, który próbowałem uzyskać:https://unpkg.com/@google/[email protected]/dist/markerclustererplus.min.js
i z kodem w nim:
źródło