none
Ver preguntas e ir respondiendo. ASP.NET MVC RRS feed

  • Pregunta

  • Hola, Buenas, mi duda es lo siguiente: Tengo una tabla en la base de datos con una serie de preguntas y respuestas y un ID para cada pregunta,  en la Vista tengo la pregunta y un texBox para que el usuario coloque la respuesta, ademas de un botón  (este botón debe cambiar de calificar a continuar), las preguntas las estoy recorriendo con un foreach. mi pregunta es, como hago para que cuando le de al boton calificar, pueda comprobar en el controlador o en cualquier funcion la respuesta, que esta sea correcta o incorrecta y volver a la vista donde me indique pregunta correcta o incorrecta y ademas me permita continuar a la siguiente pregunta. No se si me hago entender. les agradezco su ayuda, gracias.

    lunes, 14 de noviembre de 2016 17:58

Todas las respuestas

  • Una forma sencilla y elegante es que tu ViewModel de la pregunta (PreguntaViewModel) tenga un campo (oculto) que sea IsCorrect

    public class PreguntaViewModel{
      public bool IsCorrect {get;set;}
      public string Question {get;set;}
      public string Answer {get;set;}
    }

    public class QuestionnaireViewModel{
     public List<PreguntaViewModel> PreguntasViewModelList {get;set;}
     public string QuestionnaireTitle {get;set;}
    public bool Ok {get;set;}
    }

    En tu controlador tendrías dos métodos de acción:

    public class QuestionnaireController : Controller
    {

      public IActionResult Index(){
     return View();
     }

    public IActionResult Index(QuestionnaireViewModel model)
    {
       //TODO: comprobar si model.PreguntasViewModelList esta contestado correctamente
      //Aquellas que las respuestas sean incorrectas le pondremos el atributo IsCorrect  a false
      //si hay una sola pregunta que el atributo IsCorrect es false, hacemos set de -- model.Ok = false

        return View(model);

    }

    }

       En nuestra vista deberíamos de mostrar que preguntas estan bien o no, como ya tenemos un flag que nos lo dirá podemos pintarlas fácilmente con razor o el front que estés usando

    Saludos
    martes, 15 de noviembre de 2016 16:01