¿Puedo acortar esto a una línea? He intentado de varias maneras, pero no puedo hacerlo bien.Acorte esta instrucción if en Razor a una línea
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
¿Puedo acortar esto a una línea? He intentado de varias maneras, pero no puedo hacerlo bien.Acorte esta instrucción if en Razor a una línea
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
Puede haber una solución aún más simple, pero esto debería funcionar:
@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
¡Tenga cuidado con Html.Raw, no codifica la salida! –
Otra manera sería:
@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> }
Personalmente me parece más legible que el operador ternario, pero esto es personal
Me gusta la legibilidad de este también pero el único problema es que cuando presionas CTRL K + D en Visual Studio, lo baja a 3 líneas :( –
La forma más corta de hacerlo es como:
@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "")
o
@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")
o incluso más corto si no repita su código html
<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")">
Probablemente hay una mejor manera de hacerlo sin etiquetas desequilibradas. Por favor, muestre más código. – SLaks
Esta es la declaración if que quiero abreviar. Otro código es irrelevante. – Todd
Incorrecto. Esta declaración 'if' es un diseño pobre. Dado otro código, podemos mostrar cómo diseñarlo mejor. – SLaks