none
Secciones [ Razor ] dinámicas con ASP MVC 3 RRS feed

  • Pregunta

  • Hola, actualmente trabajo en el desarrollo de un proyecto, el cual me ha llevado a trabajar con @section en el. Todo ha funcionado perfecto, hasta el momento que quiero implementar contenido dinámico dentro de las secciones, pero como saben, las secciones  no se pueden duplicar. Mi código es el siguiente:

    @foreach (var Articulos in Model)
    {
            @: @section Titulo {
    
                    @Articulos.Titulo
            }
    
        @: @section Contenido{
                    
                    @Articulos.Contenido
        }
    
    }

    Como pueden ver, los datos son extraidos de manera dinámica desde una base de datos, todo funciona bien, hasta el momento en donde existe mas de un registro y el foreach debe hacer una segunda vuelta. Quiero saber si existe alguna forma de hacer secciones dinámicas o si existe una mejor solución.

    Gracias de antemano.

    Qué pasen un buen resto del día.


    Saludos desde República Dominicana. :) Blog

    miércoles, 9 de enero de 2013 22:05

Todas las respuestas

  • Estimado  Manuel_Hernández

    Creo que tengo algo similar a lo que necesitas implementado. A ver si te sirve:

    Primero que nada veo que tu modelo es una lista de Articulos, en este caso este modelo no te sirve de mucho. Asi que en mi caso cree un modelo que tenga o implemente todo los metodos necesarios.
    Ejemplo

    public class ArticulosModel{
    
    	public List<Articulo> Articulos { get; set; } 
    	
    	public string ObtenerSeccionTitulo(){
    		var seccionTitulo = string.empty;
    		//Recorres los articulos armando lo necesario
    		//...
    		
    		return seccionTitulo;
    	}
    	...
    }

    Entonces tu vista simplemente lo utilizas, y queda una vista mas limpia

    @section Titulo {
    
        @Model.ObtenerSeccionTitulo()
     }

    Idem para la otra seccion

    Espero que te sirva de ayuda o guia


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    sábado, 12 de enero de 2013 0:21