Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de ASP.NET Core

Curso de ASP.NET Core

Juan Carlos Ruiz

Juan Carlos Ruiz

Ajuste de vistas y controladores

25/35
Recursos

Aportes 13

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Me funciono!


[Route("Curso/")]
        [Route("Curso/{id}")]
        [Route("Curso/Index")]
        [Route("Curso/Index/{id}")]
        public IActionResult Index(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                ViewBag.CosaDinamica = "La Monja";
                var curso = _context.Cursos.FirstOrDefault();

                return View(curso);
            }
            else
            {
                var curso = from cur in _context.Cursos
                            where cur.Id == id
                            select cur;
                return View(curso.SingleOrDefault());
            }
        }

También se puede buscar con:

context.Entidad.Find(parametroId);

Copy and paste

Me encantaba el curso hasta hace 2 clases, siento que todo esta siento muy repetitivo 😦

        public IActionResult Index(string id)
        {
            if (String.IsNullOrEmpty(id))
            {
                var students = _context.Students;
                return View("MultiStudent",students); 
            }
            
            var student = _context.Students
                .FirstOrDefault(c => c.Id == id);

            return View("Index",student);
        }

Excelentes clases Profe, aprendiendo full!!

Muy claro, Gracias Profe

Continuamos

entendiendo cada paso.

Excelente muy bien detallado el proceso de las rutas con sus controladores y las vistas

bien

Logre hacer un enrutamiento directo de la siguiente forma: dentro de cada controler agregar un nuevo “ViewBag” con el nombre del la carpeta de View que va tomar el controlador como por ejemplo " ViewBag.MainCtrl = “Asignatura”; "

        public IActionResult MultiAsignaturas()
        {
            var Asignatura = _context.Asignaturas;

            ViewBag.Fecha = DateTime.Now;
            ViewBag.MainCtrl = "Asignatura";

            return View( "MultiAsignaturas", Asignatura);
        }

Y dentro de “./Views/Shared/ListaObjetosEscuela.csgtml” dentro de la tabla

<tbody>
    @foreach (var obj in @Model)
    {
      <tr>
        <td><a class="nav-link text-dark" asp-area="" asp-controller="@ViewBag.MainCtrl" asp-action="Index" asp-route-id="@obj.Id">@obj.Nombre</a></td>
        <td>@obj.Id</td>
      </tr>
    }
  </tbody>

asp-route- esta característica me ayuda a pasarle un parámetro adicional que en este casi seria “id” asp-route-id, de esta manera solo seleccionando el nombre del alumno, la asignatura o el curso y me enviara al Index de este

Otra alternativa

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using ProyectoEscuela.Models;

namespace ProyectoEscuela
{
    [Route("[controller]")]
    public class AlumnoController: Controller
    {
        private EscuelaContext _context;

        public AlumnoController(EscuelaContext context){
            _context = context;
        }
        [HttpGet]
        public IActionResult Index()
        {
            ViewBag.Fecha = DateTime.UtcNow.ToString();

            return View("MultiAlumno",_context.Alumnos);
        }
        
        [HttpGet("{alumnoId}")]
        public IActionResult Index(string alumnoId)
        {
            var alumno = from alum in _context.Alumnos
                                where alum.Id == alumnoId
                                select alum;

            return View(alumno.SingleOrDefault());
        }
    }
}