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

  • Amena

    Amena

    15 Kasım 2006
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012