none
Aplicacion de Examen ASP.NET MVC RRS feed

  • Pregunta

  • Hola, buenas tardes, estoy aprendiendo a usar ASP.Net MVC, me encuentro diseñando una pequeña aplicación de examen, la cual consta de unas preguntas con opción múltiple de respuesta, tengo alojado el examen en una base de datos en sql server, tiene sus respectivas tablas de preguntas y respuestas. 

    Este seria el modelo del examen

    public class Examen2Model
        {
            public int IDCurso { get; set; }
            public string NombreCurso { get; set; }
            public int idExamen { get; set; }
            public string idPregunta { get; set; }
            public string Pregunta { get; set; }
            public string idRespuesta { get; set; }
            public string Respuetsa { get; set; }
    
    
        }
    
    public List<Examen2Model> Examen2 (int id)
            {
                List<Examen2Model> List = new List<Examen2Model>();
                var query = from ue in curso.tblUsuarioExamen
                            join c in curso.tblCursos on ue.idCurso equals c.Id_Curso
                            join e in curso.tblExamen on ue.idExamen equals e.idExamen
                            join p in curso.tblPreguntas on ue.idPregunta equals p.idPregunta
                            join r in curso.tblRespuestas on ue.idRespuesta equals r.idRespuesta
                            where c.Id_Curso==id
                            select new
                            {
                                IdCurso = c.Id_Curso,
                                NameCurso = c.Nombre_Curso,
                                IdExamen = e.idExamen,
                                idPregunta = p.idPregunta,
                                Pregunta = p.DescripcionPregunta,
                                idRespuesta = r.idRespuesta,
                                Respuesta = r.DescripcionRespuesta
                            };
                var ListaData = query.ToList();
                foreach(var Dato in ListaData)
                {
                    List.Add(new Examen2Model()
                    {
                        IDCurso = Dato.IdCurso,
                        NombreCurso = Dato.NameCurso,
                        idExamen = Dato.IdExamen,
                        idPregunta = Dato.idPregunta,
                        Pregunta = Dato.Pregunta,
                        idRespuesta = Dato.idRespuesta,
                        Respuetsa = Dato.Respuesta
    
                    });
                }
                return List;
            }

    Mi inconveniente surge en la vista, ya que quiero que me muestre 1 pregunta y sus respectivas opciones de respuestas, pero lo que ocurre es que me muestra la pregunta y una opción de respuesta, luego la misma pregunta  y la siguiente opción, por ultimo la misma pregunta y la ultima opción de respuesta, y así con todas las preguntas.

    Quisiera saber como hago para que únicamente me muestra la pregunta y sus opciones de respuesta.

    Espero que puedan ayudarme, muchas gracias.



    viernes, 7 de diciembre de 2018 21:49

Todas las respuestas

  • hola

    el tema es que debes armar un arbol, una pregunta tiene N respuestas y alli estas aplanando los datos

    la estructura deberia ser

    public class Examen2Model
    {
    	public int IDCurso { get; set; }
    	public string NombreCurso { get; set; }
    	public int idExamen { get; set; }
    
    	public List<PreguntaModel> Preguntas { get; set; }
    }
    	
    public class PreguntaModel
    {
    	public string idPregunta { get; set; }
    	public string Pregunta { get; set; }
    	
    	public List<RespuestaModel> Respuestas { get; set; }
    }
    
    public class RespuestaModel
    {
    	public string idRespuesta { get; set; }
    	public string Respuetsa { get; set; }
    }

    en la vista usarias un foreach para iterar la listas

    pero el linq puede ser complicado sino mapeas las relaciones entre las tablas, eso de usar join en el linq no esta bueno deberias mapear las relaciones

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    sábado, 8 de diciembre de 2018 0:01