¿Cómo usar operadores ternarios en maquinilla de afeitar (especialmente en atributos HTML)?

How Use Ternary Operators Razor

Con la ayuda del motor de visualización de WebForms, suelo utilizar operadores ternarios para condiciones muy simples, especialmente en atributos HTML. P.ej:

|_+_|

El código anterior se basará en si el usuario está autenticado como My link here Marcar oferta o auth clase.



Maquinilla de afeitar ¿Cuál es la sintaxis equivalente del motor de visualización? Debido a que Razor requiere etiquetas HTML para 'saber' cuándo entrar y salir del código y el marcado, actualmente me atengo a los siguientes puntos:



|_+_|

Hablando francamente, esto es aterrador



Me encantaría hacer semejante Cosas, pero estoy tratando de entender cómo en maquinilla de afeitar:

|_+_|

-

Actualizar:



Durante este tiempo, creé el siguiente HtmlHelper:

|_+_|

Puedes llamarlo así en Razor:

|_+_|

Sin embargo, espero que haya una manera de usar el operador ternario sin tener que dar un paso atrás y envolverlo en un método de extensión.


#1er piso

Para las personas que usan ASP.net con la maquinilla de afeitar VB, también se pueden usar operadores ternarios.

También debe estar en la expresión de la navaja:

|_+_|

El operador ternario funciona de la siguiente manera:

|_+_|

El mismo ejemplo de código que usa la afeitadora VB que se muestra aquí es el siguiente:

|_+_|

Nota: Al escribir TextExpression, recuerde que los símbolos booleanos son diferentes entre C # y VB.


#2 ° piso

En mi pregunta, quiero el punto de anclaje en la vista anon Basado en un valor, y el texto es de @if(User.Identity.IsAuthenticated) { My link here } else { My link here } Recuperado

Entonces esto My link here es la solución

|_+_|

Si el texto no es de public static MvcHtmlString Conditional(this HtmlHelper html, Boolean condition, String ifTrue, String ifFalse) { return MvcHtmlString.Create(condition ? ifTrue : ifFalse) } Use esto

|_+_|

# 3er piso

También puede utilizar los siguientes métodos:

|_+_|

Prueba esto ... buena suerte gracias.


#4to piso

Debería poder utilizar la sintaxis de expresión My link here :

|_+_|

Sin embargo, no instalé Razor, por lo que puedo estar equivocado.


#5to piso

Apéndice:

El concepto importante es que está evaluando expresiones en código Razor. La mejor manera (por ejemplo, si está en un bucle foreach) es usar métodos genéricos.

La sintaxis para llamar a métodos comunes en Razor es:

|_+_|

En este caso, la expresión es:

|_+_|

Por tanto, la solución es:

|_+_|

Este código se puede usar en cualquier lugar de Razor, no solo en atributos html.

Para obtener una referencia rápida de la sintaxis de C # Razor, consulte el comentario de @ Kyralessa (blog de Phil Haack).


#6 ° piso

¡Una versión simple facilita la vista!

|_+_|