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

  • Julian Smith

    Julian Smith

    31 EKİM 2006
  • PUSHER

    PUSHER

    11 HAZİRAN 2014
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012