Razor ViewEngine: “@” sembolünden nasıl kaçabilirim?


101

Twitter @Anywhere API ile birlikte ASP.NET MVC3'te bazı Twitter tanıtıcıları çıkarmaya çalışıyorum ve bir Razor görünümünde "@" sembolünden nasıl kaçılacağımı bulamadım.

Razor'da "@" karakterinden kaçmak için sözdiziminin ne olduğunu bilen var mı?

Kullanmayı denedim <text></text>ve bu bir JIT hatasıyla sonuçlanıyor.


2
Ayrıca HTML varlığını da kullanabilirsiniz &#64;.
rsenna

Yanıtlar:


143

@ Sembolünden çıkmak için @@ kullanmalısınız.

Dikkat edilmesi gereken önemli bir nokta, bir e-posta adresinde bulunduğunda @ sembolünden çıkmanıza gerek YOKTUR. Razor bunu kendi başına anlayacak kadar akıllı olmalıdır.


4
<a href="" title="this @@ çalışmayacak"> </a>, VS'de hem sözdizimi hatası hem de çalışma zamanında ayrıştırıcı hatası.
Tien Do

1
@Tien burada benim için çalışan son HTML karakter kodunu
görüyor

25

Twitter meta etiketleri ekliyorsanız

ve Twitter kullanıcı adınız şöyle olsun: foobar

böyle görünmeli

<meta name="twitter:site" content=@("@foobar")>

16

css kodunda @ sembollerine yorum yapmanız gerekiyorsa ve sadece @@ çalışmayacaksa, şunu kullanın:

@("@@font-face"){ ... css ...}

1
HTML varlığı CSS içinde yardımcı olmadığından bu en iyi yöntemdir.
ChrisF

2

Başka bir garip durumum daha vardı: '@' + @Model.SomePropertyhref bağlantısına geçmek .

Bu dava için en iyi çözüm, benzer bir soruya verilen bu cevapta IMO'ya verildi . Hem @@ve @:html kodunu kullanırken işe yaramadı &#64;şeyler karmaşık hale getirecek.

Yani benim kodum <a href="~/path/?query=@('@')@Model.SomePropery">

@Html.Raw('@')@Model.SomePropery de işe yarardı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.