none
Como validar campos para condiciona el mostrar información dentro de vista parcial. RRS feed

  • Pregunta

  • Saludos!

    Recien me aventure a MVC 5 /  C# / VS2017 / EntityFrame / SQL. Estamos revisando algunos videos en la red, y ayudas en foros, pero en sí me encuentro sujeto a mi imaginación para llevar a cabo algo sencillo, diseñe una aplicación de escritorio que genera un turno, otra aplicación que se acciona desde cajero y llama al turno todo esto sin usar MVC / EntityFrame...

    Ahora bien, me di a la tarea de maquetar una web sencilla que se mostrara en TV grande para ilustrar a los que esperan el turno llamado y en que modulo se le antedera. Para ello decidí entonces usar MVC / entity frame / bootstrap, incluso me vi un ejemplo muy bueno en una respuesta para usar vistas parciales ya que pretendo actualizar la vista en mi caso nombre: Inicio la cual tengo planes incluya la consulta a la BD de SQL para mostrar el turno que será atendido esto sin actualizar la vista del _Layout (masterpage) que tiene un video de fondo.

    Perdonen el intro largo, pero considero necesario para describir con mas acierto mi consulta hacia ustedes, estamos revisando  videos de ejemplo; pero los vistos trabajan con vistas usando lo que VS predefine para crear, editar... listar, lo que yo pretendo es consultar una tabla GeneraTurnos de donde me interesa 1 campo para enviar a pantalla lo que hice fue agregar la vista como List basada en el Layout que tengo creado:

    Tabla: GeneraTurnos

    • id_turno,
    • id_modulo
    • cestado_turno,

    Se evalua el valor de cestado_turno = "Llamado" y que modulo lo llama: id_modulo(1 ó 2), para mostrar turno (id_turno) (Eje. 19, 20, 30 etc.).

    Para ello agregue mi modelo: 

    He creado un controlador GestorController.cs, pero mi intención como se los comente es cachar el id_turno a mostrar en pantalla basado en el filtro antes mencionado, y sinceramente no se como llevarlo a cabo, he estado jugando con codigos, sin exito, por eso en estos momentos solicito su ayuda, les dejo lo casi nada que tengo en el controlador y la vista.

    using GestorTurnosV2.Models;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Mvc;

    namespace GestorTurnosV2.Controllers
    {
        public class GestorController : Controller
        {
            // GET: Gestor
            public ActionResult Inicio()
            {

                TurnosContext db = new TurnosContext();
                List<GeneraTurnos> lista = db.GeneraTurnos.Where(a => a.cestado_turno == "Llamado").ToList();

                return View();
            }
        }
    }

    Aquí lo que tengo en la vista con error de referencia a ibjeto en la linea del @foreach (var item in Model):

    @model IEnumerable<GestorTurnosV2.Models.GeneraTurnos>

    @{
        ViewBag.Title = "Inicio";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <div class="title-content">
        <h1>GESTOR DE TURNOS</h1>
    </div>
    <div class="title-content">
        <h2> <span style="float:right"> MODULO -B- </span></h2><h3>MODULO -A-</h3>
    </div>

    @foreach (var item in Model)
    {
    <div class="title-content">
        <h4><span style="float:right" @Html.DisplayFor(modelItem => item.id_turno)></span></h4>  <h5>@Html.DisplayFor(modelItem => item.id_turno)</h5>
    </div>
    }

    En la vista ya tengo todo maquetado, solo pretendo mostrar el valor de turno en la parte del modulo que lo llamó, y en la vista pretendo mostrar un mensaje "Por asignar" para cuando no se llame a ningún turno.

    Perdonen la extensión de mi mensaje de ayuda, pero espero haberme dado a entender de lo que pretendo.

    Hasta pronto y muchas gracias por la ayuda y el tiempo.



    lunes, 22 de enero de 2018 7:57

Respuestas

  • hola

    te esta faltando asignar el model a la view

            // GET: Gestor
            public ActionResult Inicio()
            {
    
                TurnosContext db = new TurnosContext();
                List<GeneraTurnos> lista = db.GeneraTurnos.Where(a => a.cestado_turno == "Llamado").ToList();
    
                return View(lista);
            }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Marco Bueno miércoles, 24 de enero de 2018 5:26
    martes, 23 de enero de 2018 12:55