¿Se soportan las expresiones lambda/métodos anónimos en el motor Razor view?¿Las expresiones lambda son compatibles con Razor?
Estoy teniendo dificultades para expresar lo siguiente en la maquinilla de afeitar:
@Model.ToList().ForEach(i =>
{
if (i.DealerName != null)
{
<text>
@i.DealerName
</text>
}
}
Nota: Sé que puede resolver esto con @foreach
pero necesito una solución similar para un control MVC tercera parte. Está usando este mecanismo para establecer el contenido del control. Funciona bien para las vistas MVC .ASPX, pero no puede funcionar con Razor.
equivalente MVC .ASPX (el código me gustaría convertir a la sintaxis Razor):
<% Model.ToList().ForEach(i =>
{
if (i.DealerName != null)
{
%> <%=i.DealerName%> <%
};
});
%>
Esto es para el motor de la maquinilla de afeitar que se incluye con ASP.NET MVC3.
Sí 'Respuesta.Write' funciona, pero para un ejemplo más complejo, la concatenación de cadenas se sale de control muy rápidamente. :( –
Sí, tienes razón ... He actualizado la publicación para permitir prácticamente cualquier tipo de código Razor dentro de esta función. Disfruta :) –
Gracias por tu molestia, tomaste Artiom. Me gusta particularmente tu truco de múltiples líneas. Desafortunadamente no puedo entrar en un bloque de código como este. Como mencioné en mi pregunta, necesito proporcionar mi contenido/plantilla dentro de la expresión lambda de los proveedores de componentes para construir el control. Parece tan simple en el código .ASPX. ¿Debo entender que las expresiones lambda no son compatibles con Razor al mismo nivel que con el código MVC .ASPX? –