Nasıl jilet (özellikle HTML öznitelikleri) değişken kullanmak?
WebForms motor görünümü ile, genellikle çok basit bir bilgi almak için üçlü operatör, özellikle HTML niteliklerini içinde kullanacağım. Örneğin:
<a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a>
Yukarıdaki kod <a>
etiketi auth
anon
bir sınıf kullanıcı kimliği doğrulanmış olup olmadığını bağlı olarak verecektir.
Eşdeğer Razor view engine ile sözdizimi nedir? Razor HTML etiketleri "ve kod biçimlendirme ve dışarı atlamak için zaman", şu an takıldım kaldım: . bilmek gerekir çünkü
@if(User.Identity.IsAuthenticated) { <a class="auth">My link here</a> }
else { <a class="anon">My link here</a> }
Bu, en hafif deyimiylekorkunç.
Bir şeyler yapmak isterdimgibibu, ama ben anlamak için mücadele nasıl Traş makinesi:
<a class="@=User.Identity.IsAuthenticated ? "auth" : "anon";">My link here</a>
--
Güncelleme:
Bu arada, bu HtmlHelper oluşturduk:
public static MvcHtmlString Conditional(this HtmlHelper html, Boolean condition, String ifTrue, String ifFalse)
{
return MvcHtmlString.Create(condition ? ifTrue : ifFalse);
}
Jilet bu gibi olabilir:
<a class="@Html.Conditional(User.Identity.IsAuthenticated, "auth", "anon")">My link here</a>
Yine de, bir uzantısı yöntemi olarak sarma düşen geri olmadan üçlü operatör kullanmak için bir yolu var umuyorum.
CEVAP
@()
ifade sözdizimi kullanmanız gerekir:
<a class="@(User.Identity.IsAuthenticated ? "auth" : "anon")">My link here</a>
Jilet yüklü, ama yok, yanılıyor olabilirim. Ayrıca an issue on CodePlex Bu davranış ile ilgili.
Nasıl veri-* ASP.NET MVC öznitelikleri...
Nasıl HTML Çeviklik paketi kullanmak i...
Nasıl bir WordPress kullanmak çok CSS ...
Nasıl baskı başlık için HTML kullanmak...
Nasıl düzgün html öznitelikleri içinde...