SORU
3 Kasım 2010, ÇARŞAMBA


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
3 Kasım 2010, ÇARŞAMBA


@() 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • happyjpy

    happyjpy

    22 AĞUSTOS 2009
  • Helder Barreto

    Helder Barre

    22 Mayıs 2006