Andamiaje ASP.NET MVC

El andamiaje se utiliza para definir el marco de generación de código utilizado en las aplicaciones web. Utiliza plantillas T4 para generar controladores básicos y vistas para los modelos. Genera instancias para el modelo de dominio mapeado y código para todas las operaciones CRUD. También reduce la cantidad de tiempo para desarrollar una operación de datos estándar en la aplicación.

Básicamente, es un marco de generación de código automatizado, genera código para operaciones CRUD en función de las clases de modelo de dominio proporcionadas y las conexiones de base de datos. Puede agregar scaffolding a su proyecto cuando desee agregar código que interactúe con el modelo de datos en el menor tiempo posible.

En este artículo, veremos cómo usar el scaffolding de ASP.NET MVC 4 para generar automáticamente el CRUD (Crear, Leer, Actualizar y Eliminar) de una aplicación para nuestra aplicación. Simplemente comience con la clase de modelo de escritura, y sin escribir el código, 

Creará un controlador con la ayuda de scaffolding que contenga todas las operaciones CRUD, así como todas las vistas necesarias. 

En este ejercicio, aprenderá a usar el scaffolding de ASP.NET MVC 4 con el primer enfoque de código para crear los métodos CRUD.

Empecemos,

Paso 1: Primero, simplemente creamos una aplicación MVC. Abra el VS >> Ingrese el nombre de la aplicación >> seleccione la plantilla MVC y luego haga clic en crear. En nuestro caso ToDo_ListApplication

Paso 2: agregue la clase de modelo, es decir, ToDoListModel

C#

using System.ComponentModel.DataAnnotations;
  
namespace ToDo_ListApplication.Models
{
    public class ToDOListModel
    {
        public int Id { get; set; }
        [Required]
        [MaxLength(50)]
        public string Note { get; set; }
  
    }
}

Paso 3: instale EntityFramework y luego cree una nueva carpeta con el nombre ApplicationDbContext , luego agregue una nueva clase llamada » ToDoDbContext » que herede la clase DbContext y cree una propiedad DbSet , es decir, ToDoList , para que nuestro EF pueda reconocerlo como una entidad.

C#

using System.Data.Entity;
  
namespace ToDo_ListApplication.Models
{
    public class ToDoDbContext : DbContext
    {
        public ToDoDbContext() : base("ToDoContextDemo")
        {
  
        }
        public DbSet<ToDOListModel> ToDoList { get; set; }
    }
}

Como puede ver en el código anterior, es decir, ToDoContextDemo es el nombre de la string de conexión que he agregado en el archivo web.config .

Ahora, lo siguiente más importante que debe recordar antes de crear scaffolding es compilar nuestro proyecto y asegurarse de que se compile sin errores. si lo intenta sin compilar la solución, obtendrá la siguiente ventana emergente de error. así que asegúrese antes de crear andamios para construir la solución.

Paso 2: Ahora vamos a crear andamios,

En el Explorador de soluciones, haga clic con el botón derecho en la carpeta del controlador y seleccione Agregar | Nuevo artículo andamiado.

Plantilla: elija «MVC con vistas y acciones de lectura/escritura, utilizando Entity Framework» como plantilla. Hará la magia de crear código para todas las operaciones/acciones y vistas CRUD automáticamente.

Después de hacer clic en crear, te pedirá,

  1. Clase de modelo: la entidad debe asignarse a una clase de modelo específica; aquí, en nuestro caso, es ToDOListModel .
  2. Clase de contexto de datos: elija la clase DbContext donde se ha referido el modelo ToDo En nuestro caso ToDoDbContext y
  3. Nombre del controlador: Agregar nombre En nuestro caso ToDoController, haga clic en «Agregar».

Después de crear el controlador ToDoController con scaffolding

Abra la clase ToDoController. vea que los métodos de acción CRUD completos se han generado automáticamente.

Puede ver que » ToDoController » se genera automáticamente con la creación de instancias de DbContext , es decir, db y resultados de acciones básicas. 

Ejemplo: la acción index() que devuelve una vista donde inyecta una lista de ToDoList recuperada de la base de datos de Entity Framework. Si observa el código dentro del método index() que obtiene la lista.

C#

using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using ToDo_ListApplication.Models;
  
namespace ToDo_ListApplication.Controllers
{
    public class ToDoController : Controller
    {
        private ToDoDbContext db = new ToDoDbContext();
  
        // GET: ToDo
        public ActionResult Index()
        {
            return View(db.ToDoList.ToList());
        }
  
        // GET: ToDo/Details/5
        public ActionResult Details(int? id)
        {
            if (id == null)
            {
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            ToDOListModel toDOListModel = db.ToDoList.Find(id);
            if (toDOListModel == null)
            {
                return HttpNotFound();
            }
            return View(toDOListModel);
        }
  
        // GET: ToDo/Create
        public ActionResult Create()
        {
            return View();
        }
  
        // POST: ToDo/Create
        // To protect from overposting attacks, enable the 
        // specific properties you want to bind to
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(
            [Bind(Include = "Id,Note")] 
            ToDOListModel toDOListModel)
        {
            if (ModelState.IsValid)
            {
                db.ToDoList.Add(toDOListModel);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
  
            return View(toDOListModel);
        }
  
        // GET: ToDo/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            ToDOListModel toDOListModel = db.ToDoList.Find(id);
            if (toDOListModel == null)
            {
                return HttpNotFound();
            }
            return View(toDOListModel);
        }
  
        // POST: ToDo/Edit/5
        // To protect from overposting attacks, enable the 
        // specific properties you want to bind to, for 
          
        // more details see:
        // https://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(
            [Bind(Include = "Id,Note")] 
            ToDOListModel toDOListModel)
        {
            if (ModelState.IsValid)
            {
                db.Entry(toDOListModel).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(toDOListModel);
        }
  
        // GET: ToDo/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            ToDOListModel toDOListModel = db.ToDoList.Find(id);
            if (toDOListModel == null)
            {
                return HttpNotFound();
            }
            return View(toDOListModel);
        }
  
        // POST: ToDo/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            ToDOListModel toDOListModel = db.ToDoList.Find(id);
            db.ToDoList.Remove(toDOListModel);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
  
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}

El motor de scaffolding también crea las vistas requeridas para CRUD como se muestra en la siguiente imagen. Es decir, Crear, Eliminar, Detalles, Editar e Indexar.

Por ejemplo, la vista Create.cshtml genera códigos como los que se refieren al modelo

@model ToDo_ListApplication.Models.ToDOListModel

Y crea un formulario Html y campos utilizando los ayudantes Html de Razor.

Al igual que para otras operaciones, puede ver el código de vista generado automáticamente. En la carpeta de vista.  

Su aplicación está lista, ahora puede iniciar la aplicación.

Ejecutemos la aplicación: En el navegador, agregue el nombre de su controlador En nuestro caso, /ToDo a la URL para abrir la página ToDo.

Ahora explorará las páginas de ToDo y probará las operaciones CRUD.

  • Agregar una nueva persona: haga clic en Crear nuevo para agregar una nueva tarea pendiente.

  • Detalles de ToDo: Haga clic en Detalles para abrir los detalles de ToDo.

  • Edición de datos particulares de la lista de tareas: haga clic en el botón Editar de cualquier elemento en particular para abrir el elemento de edición de la lista de tareas pendientes.

  • Eliminación de datos particulares de la lista de tareas pendientes: haga clic en el botón Eliminar de cualquier elemento en particular para eliminar el elemento de la lista de tareas pendientes.

Nota: tenga en cuenta que el scaffolding nos brinda solo funciones básicas y no podemos depender únicamente de él. Ayuda a encender la configuración básica y podemos mejorar aún más para obtener una funcionalidad completa.

Publicación traducida automáticamente

Artículo escrito por manaligujarathi0 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *