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

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • sonia989

    sonia989

    26 EKİM 2006
  • stokelycalm

    stokelycalm

    28 Aralık 2010