SlideShare una empresa de Scribd logo
MVC
1. – Ejemplo: Hola Mundo
../Controllers/HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Puto examen";
return View();
}
public ActionResult Index2()
{
Models.Usuario datos = new Models.Usuario();
datos.Nombre = "Juan";
datos.Ciudad = "Madrid";
datos.FechaAlta = new DateTime(2014, 04, 09);
return View(datos);
}
[HttpPost]
public ActionResult Index2(int edad)
{
ViewData["edad"] = edad;
return View("VistaEdad");
}
public ActionResult About()
{
return View();
}
}
}
../ Views/Home/Index.aspx
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Página principal
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: ViewData["Message"] %></h2>
<p>
Para obtener más información sobre ASP.NET MVC, visite el <a
href="http://asp.net/mvc" title="sitio web de ASP.NET
MVC">http://asp.net/mvc</a>.
</p>
</asp:Content>
../ Models/Usuario.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcApplication1.Models
{
public class Usuario
{
public string Nombre { get; set; }
public string Ciudad { get; set; }
public DateTime FechaAlta {get; set;}
}
}
../ Views/Home/Index2.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.Usuario>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index2
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index2</h2>
<%: Html.TextBoxFor(Model => Model.Nombre) %>
<%: Html.TextBoxFor(Model => Model.Ciudad) %>
<%: Html.TextBoxFor(Model => Model.FechaAlta) %>
<br />
<h2>Introduce tu edad</h2>
<form method="post" action="/Home/Index2">
<input type="text" name="edad" />
<input type="submit" />
</form>
</asp:Content>
2. – Ejemplo: Acceso a datos
Agregamos la base de datos, en este caso cuelga del raiz pero podria colgar de Models si el
enunciado asi lo pidiese. Este es el código subyacente.
Modelo.edmx/ModeloDesigner.cs
namespace MvcAccesoDatos
{
#region Contextos
/// <summary>
/// No hay documentación de metadatos disponible.
/// </summary>
public partial class DBPersonasEntities : ObjectContext
{
……………………………………………
Importantisimo llamar a la tabla en plural y al element en singular, como la clase. Se hace
manual, visual studio no lo hace.
../ Controllers/PersonasController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcAccesoDatos.Models;
namespace MvcAccesoDatos.Controllers
{
public class PersonasController : Controller
{
// GET: /Personas/
private DBPersonasEntities db = new DBPersonasEntities();
public ActionResult Index()
{
return View();
}
// GET: /Personas/List
public ActionResult List()
{
return View(db.Personas.ToList());
}
// GET: /Personas/Create
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Persona persona)
{
try {
db.Personas.AddObject(persona);
db.SaveChanges();
return RedirectToAction("Index");
}
catch {
return View();
}
}
public ActionResult Edit(int id)
{
Persona persona = db.Personas.Single(u => u.id == id);
return View(persona);
}
//
// POST: /Personas/Edit/5
[HttpPost]
public ActionResult Edit(Persona persona)
{
try
{
// TODO: Add update logic here
db.Personas.Attach(persona);
db.ObjectStateManager.ChangeObjectState(persona,
System.Data.EntityState.Modified);
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /Personas/Delete/5
public ActionResult Delete(int id)
{
Persona persona = db.Personas.Single(u => u.id == id);
return View(persona);
}
//
// POST: /Personas/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
try
{
Persona persona = db.Personas.Single(u => u.id == id);
db.Personas.DeleteObject(persona);
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
../ Views/Personas/Index.aspx
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Base datos Repaso</title>
</head>
<body>
<div>
<h1> Base de datos repaso</h1>
<br />
<%: Html.ActionLink("Crear Usuario", "Create") %>>
<br />
<%: Html.ActionLink("Ver todos los usuarios", "List") %>>
</div>
</body>
</html>
../ Views/Personas/List.aspx
Se genera automaticamente con
nombre List,
fuertemente tipada,
clase de datos AccesoADatos.Persona
Contenido del view: List
../ Views/Personas/Create.aspx
Se general tal cual, similar a list.
../ Views/Personas/Edit.aspx
Se general tal cual, similar a list.
../ Views/Personas/Delete.aspx
Se general tal cual, similar a list.
3. – Ejemplo: Prueba final
../ Shared/Site.Master
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>Librería</h1>
</div>
<div id="logindisplay">
<% Html.RenderPartial("LogOnUserControl"); %>
</div>
<div id="menucontainer">
<ul id="menu">
<li><%: Html.ActionLink("Página principal", "Index",
"Home")%></li>
<li><%: Html.ActionLink("Categorias", "Index",
"Categorias")%></li>
<li><%: Html.ActionLink("Libros", "Index", "Libros")%></li>
<li><%: Html.ActionLink("Acerca de", "About", "Home")%></li>
</ul>
</div>
</div>
<div id="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<div id="footer">
</div>
</div>
</div>
</body>
</html>
../ Controller/HomeControler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace LibreriaMVC.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Bienvenido a nuestra web";
return View();
}
public ActionResult About()
{
return View();
}
}
}
../ Controller/CategoriasControler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using LibreriaMVC.Models;
namespace LibreriaMVC.Controllers
{
[Authorize]
public class CategoriasController : Controller
{
static LibreriaMVCEntities contexto = new LibreriaMVCEntities();
//
// GET: /Categorias/
public ActionResult Index()
{
return View(contexto.Categorias.ToList());
}
public ActionResult LibrosDeCategoria(int id)
{
List<Libro> libros = (from lib in contexto.Libros
where lib.IdCategoria == id
select lib).ToList();
return View(libros);
}
}
}
../ Controller/LibrosControler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using LibreriaMVC.Models;
namespace LibreriaMVC.Controllers
{
[Authorize]
public class LibrosController : Controller
{
LibreriaMVCEntities contexto = new LibreriaMVCEntities();
//
// GET: /Libros/
public ActionResult Index()
{
return View(contexto.Libros.ToList());
}
//
// GET: /Libros/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Libros/Create
[HttpPost]
public ActionResult Create(Libro libro)
{
if (ModelState.IsValid)
{
try
{
contexto.Libros.AddObject(libro);
contexto.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(libro);
}
}
else
return View(libro);
}
//
// GET: /Libros/Edit/5
public ActionResult Edit(int id)
{
Libro libro = (from lib in contexto.Libros
where lib.IdLibro == id
select lib).FirstOrDefault();
return View(libro);
}
//
// POST: /Libros/Edit/5
[HttpPost]
public ActionResult Edit(Libro libro)
{
if (ModelState.IsValid)
{
try
{
contexto.Libros.Attach(libro);
contexto.ObjectStateManager.ChangeObjectState(libro,
System.Data.EntityState.Modified);
contexto.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(libro);
}
}
return View(libro);
}
//
// GET: /Libros/Delete/5
public ActionResult Delete(int id)
{
Libro libro = (from lib in contexto.Libros
where lib.IdLibro == id
select lib).FirstOrDefault();
return View(libro);
}
//
// POST: /Libros/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirm(int id)
{
Libro libro = (from lib in contexto.Libros
where lib.IdLibro == id
select lib).FirstOrDefault();
try
{
contexto.Libros.DeleteObject(libro);
contexto.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(libro);
}
}
}
}

Más contenido relacionado

PDF
Trucos universal analytics
KEY
Introducción a Flask
PDF
Aplicación abc. asp net mvc 3
KEY
Introducción a DJango
DOCX
Julissa huaman hilari
PPT
Intro Jquery
PDF
Javascript y AJAX en Wordpress
Trucos universal analytics
Introducción a Flask
Aplicación abc. asp net mvc 3
Introducción a DJango
Julissa huaman hilari
Intro Jquery
Javascript y AJAX en Wordpress

La actualidad más candente (17)

PPTX
IT Camps Apps Office 365 Valencia 2014
PPTX
Objetos implícitos
PPTX
Jquery parte 1
PDF
Taller desarrollando sitios web multiplataforma
PDF
(Muy breve) Introduccion a jQuery
PDF
Android bootcamp 101 v2.0
PDF
Jquery
PDF
JQuery-Tema 1
PPTX
La magia de jquery
ODP
Introduccion a Jquery
PDF
04. Implementando APIs HTML5
PDF
Guia jQuery INCES Militar - Kurt Gude
PPTX
Seguridad de aplicaciones web 2.0
PPTX
Curso AngularJS - 5. rutas
PDF
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
PPT
Servletacceso bd
PDF
Primitive Obsession. FrontFest 2020
IT Camps Apps Office 365 Valencia 2014
Objetos implícitos
Jquery parte 1
Taller desarrollando sitios web multiplataforma
(Muy breve) Introduccion a jQuery
Android bootcamp 101 v2.0
Jquery
JQuery-Tema 1
La magia de jquery
Introduccion a Jquery
04. Implementando APIs HTML5
Guia jQuery INCES Militar - Kurt Gude
Seguridad de aplicaciones web 2.0
Curso AngularJS - 5. rutas
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
Servletacceso bd
Primitive Obsession. FrontFest 2020
Publicidad

Similar a Modelo vista controlador (20)

PDF
ASP.NET MVC - Introducción a ASP.NET MVC
PDF
Mi app-asp-net-mvc2
DOCX
PDF
PPTX
ASP.NET MVC (2011)
PPTX
MVC & ASP.NET (Spanish)
PPTX
Todomir
PDF
Conociendo el Patron Modelo Vista Controlador
PPTX
ASP.Net MVC 3 - Eugenio Serrano
PPTX
4-Unidad 2: Diseño de VIsta-2.1 Para Windows-Introducción
PPTX
4-Unidad 2. Diseños de Vista
PPTX
5-Unidad 2: Diseños de Vista-2.2 Para Web
PPTX
ASP.NET MVC Workshop Día 1
PPTX
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
PPTX
Programacion MVC.net
PPTX
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
PPTX
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
PPTX
5-Unidad 2: Diseño de Vista-2.2 Para Web
PDF
PPT Crear tablas y utilizar marquesinas.pdf
ASP.NET MVC - Introducción a ASP.NET MVC
Mi app-asp-net-mvc2
ASP.NET MVC (2011)
MVC & ASP.NET (Spanish)
Todomir
Conociendo el Patron Modelo Vista Controlador
ASP.Net MVC 3 - Eugenio Serrano
4-Unidad 2: Diseño de VIsta-2.1 Para Windows-Introducción
4-Unidad 2. Diseños de Vista
5-Unidad 2: Diseños de Vista-2.2 Para Web
ASP.NET MVC Workshop Día 1
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
Programacion MVC.net
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5-Unidad 2: Diseño de Vista-2.2 Para Web
PPT Crear tablas y utilizar marquesinas.pdf
Publicidad

Último (20)

PPTX
ELEMENTOS DEL DIBUJO TECNICO Y GRAFICOOOO
PPTX
MISCELANIA - constitución política 410-5.pptx
PDF
proceso de manufactura en la industria de Metalizado.PDF
PPTX
Diseño de proyectos de innovación pedagogica.pptx
PDF
HhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjHu .pdf
PPTX
7ma sesion de clase de produccion de cuyes y conejos.....pptx
PDF
Ejercicio figuras coordenadas polares AUTOCAD 2D
PPTX
El-Ingles-Una-Lengua-Directamente-Derivada-del-Latin.pptx
PPTX
2 rev industrial y dit.pptx mamkaakkakakaaka
PPTX
CONSTRUCCION DE MAQUINA ESCUADRADORA ..pptx
PDF
Diapositivas de la forma y orden en arquitectura
PDF
Cuidado para el Desarrollo Infantil _Certificado de participación (1).pdf
PDF
programa-regular-abril-julio-2025-ii (1).pdf
PPTX
AT_04_Equipo_Gestión_Pedagógica_innovacion.pptx
PDF
CARTELERA DEL 6 DE AGOSTO DE 2025, pozos
PDF
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus et iacul_2...
DOCX
RUTA DE TRABAJO III BLOQUE DE SEMANA DE GESTION DE LA IE JUAN SANTOS ATAHUALP...
PDF
Saldarriaga-Roa-Aprender-Arquitectura.pdf
PDF
LINEAMIENTOS EN MATERIA DE OBRAS PUBLICAS.pdf
PPTX
Medicina familiar hhvkbvhjnbjihjjhghjjbhhbv
ELEMENTOS DEL DIBUJO TECNICO Y GRAFICOOOO
MISCELANIA - constitución política 410-5.pptx
proceso de manufactura en la industria de Metalizado.PDF
Diseño de proyectos de innovación pedagogica.pptx
HhhhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjHu .pdf
7ma sesion de clase de produccion de cuyes y conejos.....pptx
Ejercicio figuras coordenadas polares AUTOCAD 2D
El-Ingles-Una-Lengua-Directamente-Derivada-del-Latin.pptx
2 rev industrial y dit.pptx mamkaakkakakaaka
CONSTRUCCION DE MAQUINA ESCUADRADORA ..pptx
Diapositivas de la forma y orden en arquitectura
Cuidado para el Desarrollo Infantil _Certificado de participación (1).pdf
programa-regular-abril-julio-2025-ii (1).pdf
AT_04_Equipo_Gestión_Pedagógica_innovacion.pptx
CARTELERA DEL 6 DE AGOSTO DE 2025, pozos
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus et iacul_2...
RUTA DE TRABAJO III BLOQUE DE SEMANA DE GESTION DE LA IE JUAN SANTOS ATAHUALP...
Saldarriaga-Roa-Aprender-Arquitectura.pdf
LINEAMIENTOS EN MATERIA DE OBRAS PUBLICAS.pdf
Medicina familiar hhvkbvhjnbjihjjhghjjbhhbv

Modelo vista controlador

  • 1. MVC 1. – Ejemplo: Hola Mundo ../Controllers/HomeController.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApplication1.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Puto examen"; return View(); } public ActionResult Index2() { Models.Usuario datos = new Models.Usuario(); datos.Nombre = "Juan"; datos.Ciudad = "Madrid"; datos.FechaAlta = new DateTime(2014, 04, 09); return View(datos); } [HttpPost] public ActionResult Index2(int edad) { ViewData["edad"] = edad; return View("VistaEdad"); } public ActionResult About() { return View(); } } }
  • 2. ../ Views/Home/Index.aspx <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Página principal </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2><%: ViewData["Message"] %></h2> <p> Para obtener más información sobre ASP.NET MVC, visite el <a href="http://asp.net/mvc" title="sitio web de ASP.NET MVC">http://asp.net/mvc</a>. </p> </asp:Content> ../ Models/Usuario.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MvcApplication1.Models { public class Usuario { public string Nombre { get; set; } public string Ciudad { get; set; } public DateTime FechaAlta {get; set;} } } ../ Views/Home/Index2.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.Usuario>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Index2 </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Index2</h2> <%: Html.TextBoxFor(Model => Model.Nombre) %> <%: Html.TextBoxFor(Model => Model.Ciudad) %> <%: Html.TextBoxFor(Model => Model.FechaAlta) %> <br /> <h2>Introduce tu edad</h2> <form method="post" action="/Home/Index2"> <input type="text" name="edad" /> <input type="submit" /> </form> </asp:Content>
  • 3. 2. – Ejemplo: Acceso a datos Agregamos la base de datos, en este caso cuelga del raiz pero podria colgar de Models si el enunciado asi lo pidiese. Este es el código subyacente. Modelo.edmx/ModeloDesigner.cs namespace MvcAccesoDatos { #region Contextos /// <summary> /// No hay documentación de metadatos disponible. /// </summary> public partial class DBPersonasEntities : ObjectContext { …………………………………………… Importantisimo llamar a la tabla en plural y al element en singular, como la clase. Se hace manual, visual studio no lo hace.
  • 4. ../ Controllers/PersonasController.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcAccesoDatos.Models; namespace MvcAccesoDatos.Controllers { public class PersonasController : Controller { // GET: /Personas/ private DBPersonasEntities db = new DBPersonasEntities(); public ActionResult Index() { return View(); } // GET: /Personas/List public ActionResult List() { return View(db.Personas.ToList()); } // GET: /Personas/Create public ActionResult Create() { return View(); } [HttpPost] public ActionResult Create(Persona persona) { try { db.Personas.AddObject(persona); db.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } } public ActionResult Edit(int id) { Persona persona = db.Personas.Single(u => u.id == id); return View(persona); } // // POST: /Personas/Edit/5 [HttpPost] public ActionResult Edit(Persona persona)
  • 5. { try { // TODO: Add update logic here db.Personas.Attach(persona); db.ObjectStateManager.ChangeObjectState(persona, System.Data.EntityState.Modified); db.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } } // // GET: /Personas/Delete/5 public ActionResult Delete(int id) { Persona persona = db.Personas.Single(u => u.id == id); return View(persona); } // // POST: /Personas/Delete/5 [HttpPost, ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { try { Persona persona = db.Personas.Single(u => u.id == id); db.Personas.DeleteObject(persona); db.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } } } } ../ Views/Personas/Index.aspx <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Base datos Repaso</title> </head> <body> <div> <h1> Base de datos repaso</h1>
  • 6. <br /> <%: Html.ActionLink("Crear Usuario", "Create") %>> <br /> <%: Html.ActionLink("Ver todos los usuarios", "List") %>> </div> </body> </html> ../ Views/Personas/List.aspx Se genera automaticamente con nombre List, fuertemente tipada, clase de datos AccesoADatos.Persona Contenido del view: List ../ Views/Personas/Create.aspx Se general tal cual, similar a list. ../ Views/Personas/Edit.aspx Se general tal cual, similar a list. ../ Views/Personas/Delete.aspx Se general tal cual, similar a list. 3. – Ejemplo: Prueba final
  • 7. ../ Shared/Site.Master <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title> <link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="page"> <div id="header"> <div id="title"> <h1>Librería</h1> </div> <div id="logindisplay"> <% Html.RenderPartial("LogOnUserControl"); %> </div> <div id="menucontainer"> <ul id="menu"> <li><%: Html.ActionLink("Página principal", "Index", "Home")%></li> <li><%: Html.ActionLink("Categorias", "Index", "Categorias")%></li> <li><%: Html.ActionLink("Libros", "Index", "Libros")%></li> <li><%: Html.ActionLink("Acerca de", "About", "Home")%></li> </ul> </div> </div> <div id="main"> <asp:ContentPlaceHolder ID="MainContent" runat="server" /> <div id="footer"> </div> </div> </div> </body> </html>
  • 8. ../ Controller/HomeControler using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace LibreriaMVC.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Bienvenido a nuestra web"; return View(); } public ActionResult About() { return View(); } } } ../ Controller/CategoriasControler using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using LibreriaMVC.Models; namespace LibreriaMVC.Controllers { [Authorize] public class CategoriasController : Controller { static LibreriaMVCEntities contexto = new LibreriaMVCEntities(); // // GET: /Categorias/ public ActionResult Index() { return View(contexto.Categorias.ToList()); } public ActionResult LibrosDeCategoria(int id) { List<Libro> libros = (from lib in contexto.Libros where lib.IdCategoria == id select lib).ToList(); return View(libros); } }
  • 9. } ../ Controller/LibrosControler using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using LibreriaMVC.Models; namespace LibreriaMVC.Controllers { [Authorize] public class LibrosController : Controller { LibreriaMVCEntities contexto = new LibreriaMVCEntities(); // // GET: /Libros/ public ActionResult Index() { return View(contexto.Libros.ToList()); } // // GET: /Libros/Create public ActionResult Create() { return View(); } // // POST: /Libros/Create [HttpPost] public ActionResult Create(Libro libro) { if (ModelState.IsValid) { try { contexto.Libros.AddObject(libro); contexto.SaveChanges(); return RedirectToAction("Index"); } catch { return View(libro); } } else return View(libro); } //
  • 10. // GET: /Libros/Edit/5 public ActionResult Edit(int id) { Libro libro = (from lib in contexto.Libros where lib.IdLibro == id select lib).FirstOrDefault(); return View(libro); } // // POST: /Libros/Edit/5 [HttpPost] public ActionResult Edit(Libro libro) { if (ModelState.IsValid) { try { contexto.Libros.Attach(libro); contexto.ObjectStateManager.ChangeObjectState(libro, System.Data.EntityState.Modified); contexto.SaveChanges(); return RedirectToAction("Index"); } catch { return View(libro); } } return View(libro); } // // GET: /Libros/Delete/5 public ActionResult Delete(int id) { Libro libro = (from lib in contexto.Libros where lib.IdLibro == id select lib).FirstOrDefault(); return View(libro); } // // POST: /Libros/Delete/5 [HttpPost, ActionName("Delete")] public ActionResult DeleteConfirm(int id) { Libro libro = (from lib in contexto.Libros where lib.IdLibro == id select lib).FirstOrDefault(); try { contexto.Libros.DeleteObject(libro); contexto.SaveChanges(); return RedirectToAction("Index"); }