Como usar o operador ternário no razor (especificamente em atributos HTML)?

Com o mecanismo de exibição WebForms, usarei normalmente o operador ternário para condicionais muito simples, especialmente dentro de atributos HTML. Por exemplo:

<a class="<%=User.Identity.IsAuthenticated ? "auth" : "anon" %>">My link here</a>

O código acima dará a<a> marcar uma classe deauth ouanon dependendo se o usuário está autenticado.

Qual é a sintaxe equivalente ao mecanismo de exibição Razor? Como o Razor exige que as tags HTML "saibam" quando entrar e sair do código e da marcação, atualmente estou preso ao seguinte:

@if(User.Identity.IsAuthenticated)  { <a class="auth">My link here</a> }
else { <a class="anon">My link here</a> }

Isto é, para dizer o mínimo,terrivel.

Eu adoraria fazer algogostar isso, mas estou lutando para entender como no Razor:

<a class="@=User.Identity.IsAuthenticated ? "auth" : "anon";">My link here</a>

-

Atualizar:

Enquanto isso, eu criei este HtmlHelper:

public static MvcHtmlString Conditional(this HtmlHelper html, Boolean condition, String ifTrue, String ifFalse)
{
  return MvcHtmlString.Create(condition ? ifTrue : ifFalse);
}

que pode ser chamado assim pelo Razor:

<a class="@Html.Conditional(User.Identity.IsAuthenticated, "auth", "anon")">My link here</a>

Ainda assim, espero que haja uma maneira de usar o operador ternário sem voltar a envolvê-lo em um método de extensão.

questionAnswers(6)

yourAnswerToTheQuestion