¿Cómo convertir una pieza de HTML en una variable en Razor? En Spark solía escribir el siguiente código:Maquinilla de afeitar: cómo representar el contenido en una variable
<content var="t">
<a class="tab" href="">Tab name</a>
</content>
<content var="tc">
<div class="tabcontent">
<p>Here goes tab content</p>
</div>
</content>
!{tabs(t, tc)}
dos variables se pasan a una macro que hace todo el buen envoltorio del contenido en la hoja de la ficha.
¿Cuál es la mejor manera de hacer lo mismo en Razor?
Actualización: Creo que lo tengo ..
En la maquinilla de afeitar, el constructo @<text>...</text>
puede ser de uso para producir expresiones lambda, que pueden ser reutilizados después, que es un equivalente prolongado de la asignación de un trozo de HTML a una variable. El ejemplo anterior se puede realizar de la siguiente manera:
Func<int, object> t =
@<text>
<a class="tab" href="">Tab name</a>
</text>;
Func<int, object> tc =
@<text>
<div class="tabcontent">
<p>Here goes tab content</p>
</div>
</text>;
@tabs(t(0), tc(0))
No puedo encontrar la manera de escribir lambdas sin parámetros (Func<object>
). el parámetro int
en ambos lambdas arriba es un maniquí. Razor parece necesitar un parámetro (y ya crea un "elemento" variable para indicarlo dentro de la expresión).
gracias, creo que lo que realmente necesita es una sintaxis de línea auxiliar. No creo que esto esté disponible en Razor todavía. la solución sería declarar un ayudante explícito, que se puede llamar y el resultado se puede asignar a una variable. – Andy
Me equivoqué en el comentario anterior. La sintaxis está disponible, no se requieren ayudantes explícitos. Las expresiones Lambda se pueden usar en su lugar. Ver mi pregunta actualizada – Andy