programacion MVC

15
MODELO VISTA CONTROLADOR 1. CREAMOS LA BASE DE DATOS 2. CREAMOS LOS PROCEDIMIENTOS ALMACENADOS

description

pasos para MVC

Transcript of programacion MVC

  • MODELO VISTA CONTROLADOR

    1. CREAMOS LA BASE DE DATOS

    2. CREAMOS LOS PROCEDIMIENTOS ALMACENADOS

  • 3. LUEGO CREAMOS UN PROYECTO EN MVC4

    4. LUEGO DEBEMOS R A MODELS/ Y CREAR UNA CLASE CONEXIN

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.SqlClient; using System.Data; using System.Configuration; namespace Mvc_Clase31.Models { public class Conexion { static SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["MiConexion"].ToString()); public static bool ValidaUsuario(string nombre, string clave) { bool autorizado = false; SqlCommand cmd = new SqlCommand("pa_Usuario_Buscar", cn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@nomusuario", SqlDbType.Char, 10).Value = nombre; cmd.Parameters.Add("@clausuario", SqlDbType.VarChar, 6).Value = clave; cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); autorizado = dr.HasRows; cn.Close(); return autorizado; } }

  • 5. TAMBIEN CREAMOS AL CLIENTE MODELS

    using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Mvc_Clase31.Models { public class ClienteModel { DataBaseDataContext contexto = new DataBaseDataContext(); public List ListarCliente() { List lista = new List(); var consulta = contexto.PA_listar_Todos(); foreach (var clte in consulta) { Clientes c = new Clientes(); c.Cli_Codigo = clte.Cli_Codigo ; c.Cli_Nombre = clte.Cli_Nombre; c.Cli_Apellido = clte.Cli_Apellido; c.Cli_Direccion = clte.Cli_Direccion; c.Cli_Telefono = clte.Cli_Telefono; c.Cli_Email = clte.Cli_Email; lista.Add(c); } return lista; } public Clientes BuscarClienteporCodigo(string id) { Clientes c = new Clientes(); try { var consulta = contexto.pa_clientes_BuscarporCodigo(id); foreach (var clte in consulta) { c.Cli_Codigo = clte.Cli_Codigo; c.Cli_Nombre = clte.Cli_Nombre; c.Cli_Apellido = clte.Cli_Apellido; c.Cli_Direccion = clte.Cli_Direccion; c.Cli_Telefono = clte.Cli_Telefono; c.Cli_Email = c.Cli_Email; } } catch (Exception) { throw; } return c; } public string ObtenerClienteUltimoCodigo(string id) { try { var consulta = contexto.pa_Clientes_ObtenerUltimoCodigo(ref id); } catch (Exception) { throw; } return id; } public string InsertarCliente(Clientes c, string cod) { string resultado = String.Empty; try { contexto.pa_clientes_insertar(cod, c.Cli_Nombre, c.Cli_Apellido, c.Cli_Direccion, c.Cli_Telefono, c.Cli_Email,c.Cli_Foto); resultado = "OK"; } catch (Exception ex) { resultado = ex.Message; } return resultado;

  • } public string ActualizarCliente(Clientes c, string cod) { string resultado = String.Empty; try { contexto.pa_clientes_modificar(cod, c.Cli_Nombre, c.Cli_Apellido, c.Cli_Direccion, c.Cli_Telefono, c.Cli_Email,c.Cli_Foto); resultado = "OK"; } catch (Exception ex) { resultado = ex.Message; } return resultado; } public string EliminarCliente(string id) { string resultado = String.Empty; try { contexto.pa_clientes_eliminar(id); resultado = "OK"; } catch (Exception ex) { resultado = ex.Message; } return resultado; } }

    }

    6. LOGIN MODELS

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; namespace Mvc_Clase31.Models { public class LoginModel { [Required] public String nomusuario { get; set; } [Required] public String clausuario{ get; set; } }

    }

  • 7. CREAMOS NUESTRO DATABSE

    8. CREAMOS CLIENTE CONTROLLLERS

    using Mvc_Clase31.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Mvc_Clase31.Controllers { public class ClienteController : Controller { // // GET: /Cliente/ ClienteModel model = new ClienteModel(); public ActionResult Index() { return View(model.ListarCliente()); } // // GET: /Cliente/Details/5 public ActionResult Details(string id) { var clte = model.BuscarClienteporCodigo(id);

  • return View(clte); } // // GET: /Cliente/Create public ActionResult Create() { string codigo; codigo = model.ObtenerClienteUltimoCodigo(""); ViewBag.cod = codigo; return View(); } // // POST: /Cliente/Create [HttpPost] public ActionResult Create(Clientes c) { try { string codigo; codigo= model.ObtenerClienteUltimoCodigo(""); if (model.InsertarCliente(c,codigo) == "OK") { return RedirectToAction("Index"); } else { return RedirectToAction("Create"); } } catch { return View(); } } // // GET: /Cliente/Edit/5 public ActionResult Edit(string id) { var clte = model.BuscarClienteporCodigo(id); return View(clte); } // // POST: /Cliente/Edit/5 [HttpPost] public ActionResult Edit(string id, Clientes c) { try { Clientes clte = new Clientes(); clte.Cli_Codigo = id; clte.Cli_Nombre = c.Cli_Nombre; clte.Cli_Apellido = c.Cli_Apellido; clte.Cli_Direccion = c.Cli_Direccion; clte.Cli_Telefono = c.Cli_Telefono; clte.Cli_Email = c.Cli_Email; if (model.ActualizarCliente (c,id) == "OK") { return RedirectToAction("Index"); } else {

  • return RedirectToAction("Edit"); } } catch { return View(); } } // // GET: /Cliente/Delete/5 public ActionResult Delete(string id) { var clte = model.BuscarClienteporCodigo(id); return View(clte); } // // POST: /Cliente/Delete/5 [HttpPost] public ActionResult Delete(string id, FormCollection collection) { try { if (model.EliminarCliente(id) == "OK") { return RedirectToAction("Index"); } else { return RedirectToAction("Delete"); } } catch { return View(); } } } }

    9. LOGINCONTROLLER

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Mvc_Clase31.Models; using System.Web.Security; namespace Mvc_Clase31.Controllers { public class LoginController : Controller { // // GET: /Login/ public ActionResult Index() { return View();

  • } [HttpPost] public ActionResult Index(LoginModel model) { if (ModelState.IsValid) { if (Conexion.ValidaUsuario(model.nomusuario, model.clausuario)) { FormsAuthentication.SetAuthCookie(model.nomusuario, false); return RedirectToAction("index", "Cliente"); } else { ModelState.AddModelError("", "Invalido Nombre de Usuario o Contrasea "); } } return View(); } } }

    10. AGREGAMOS CSS

  • 11. EN VIEWS EMPEZAMOS A GENERAR EL CODIGO DE EDITAR, DETALLES, ELIMINAR

    @model Mvc_Clase31.Models.Clientes @{ ViewBag.Title = "Create"; } Nuevo Cliente @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) Clientes Codigo @Html.TextBoxFor(model => model.Cli_Codigo, new { @Value = ViewBag.cod, @disabled = "true" }) Nombre @Html.EditorFor(model => model.Cli_Nombre) @Html.ValidationMessageFor(model => model.Cli_Nombre) Apellido

  • @Html.EditorFor(model => model.Cli_Apellido) @Html.ValidationMessageFor(model => model.Cli_Apellido) Direccion @Html.EditorFor(model => model.Cli_Direccion) @Html.ValidationMessageFor(model => model.Cli_Direccion) @Html.LabelFor(model => model.Cli_Telefono) @Html.EditorFor(model => model.Cli_Telefono) @Html.ValidationMessageFor(model => model.Cli_Telefono) @Html.LabelFor(model => model.Cli_Email) @Html.EditorFor(model => model.Cli_Email) @Html.ValidationMessageFor(model => model.Cli_Email) @Html.LabelFor(model => model.Cli_Foto) @Html.EditorFor(model => model.Cli_Foto) @Html.ValidationMessageFor(model => model.Cli_Foto) } @Html.ActionLink("Regresar", "Index")

    @model Mvc_Clase31.Models.Clientes @{ ViewBag.Title = "Delete"; } Delete Are you sure you want to delete this? Clientes @Html.DisplayNameFor(model => model.Cli_Codigo) @Html.DisplayFor(model => model.Cli_Codigo)

  • @Html.DisplayNameFor(model => model.Cli_Nombre) @Html.DisplayFor(model => model.Cli_Nombre) @Html.DisplayNameFor(model => model.Cli_Apellido) @Html.DisplayFor(model => model.Cli_Apellido) @Html.DisplayNameFor(model => model.Cli_Direccion) @Html.DisplayFor(model => model.Cli_Direccion) @Html.DisplayNameFor(model => model.Cli_Telefono) @Html.DisplayFor(model => model.Cli_Telefono) @Html.DisplayNameFor(model => model.Cli_Email) @Html.DisplayFor(model => model.Cli_Email) @using (Html.BeginForm()) { @Html.AntiForgeryToken() | @Html.ActionLink("Back to List", "Index") }

    model Mvc_Clase31.Models.Clientes @{ ViewBag.Title = "Details"; } Details Clientes @Html.DisplayNameFor(model => model.Cli_Codigo) @Html.DisplayFor(model => model.Cli_Codigo)

  • @Html.DisplayNameFor(model => model.Cli_Nombre) @Html.DisplayFor(model => model.Cli_Nombre) @Html.DisplayNameFor(model => model.Cli_Apellido) @Html.DisplayFor(model => model.Cli_Apellido) @Html.DisplayNameFor(model => model.Cli_Direccion) @Html.DisplayFor(model => model.Cli_Direccion) @Html.DisplayNameFor(model => model.Cli_Telefono) @Html.DisplayFor(model => model.Cli_Telefono) @Html.DisplayNameFor(model => model.Cli_Email) @Html.DisplayFor(model => model.Cli_Email) @Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) | @Html.ActionLink("Back to List", "Index")

    @model Mvc_Clase31.Models.Clientes @{ ViewBag.Title = "Edit"; } Edit @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) Clientes @Html.LabelFor(model => model.Cli_Codigo)

  • @Html.TextBoxFor(model => model.Cli_Codigo, new { @Value = ViewBag.cod, @disabled = "true" }) @Html.LabelFor(model => model.Cli_Nombre) @Html.EditorFor(model => model.Cli_Nombre) @Html.ValidationMessageFor(model => model.Cli_Nombre) @Html.LabelFor(model => model.Cli_Apellido) @Html.EditorFor(model => model.Cli_Apellido) @Html.ValidationMessageFor(model => model.Cli_Apellido) @Html.LabelFor(model => model.Cli_Direccion) @Html.EditorFor(model => model.Cli_Direccion) @Html.ValidationMessageFor(model => model.Cli_Direccion) @Html.LabelFor(model => model.Cli_Telefono) @Html.EditorFor(model => model.Cli_Telefono) @Html.ValidationMessageFor(model => model.Cli_Telefono) @Html.LabelFor(model => model.Cli_Email) @Html.EditorFor(model => model.Cli_Email) @Html.ValidationMessageFor(model => model.Cli_Email) } @Html.ActionLink("Back to List", "Index") @section Scripts { @Scripts.Render("~/bundles/jqueryval") }

    @model IEnumerable

  • @{ ViewBag.Title = "View1"; } @Html.ActionLink("NUEVO CLIENTE", "Create") Codigo Nombres Apellidos Direccion Telefono Email @foreach (var item in Model) { @Html.DisplayFor(modelItem => item.Cli_Codigo) @Html.DisplayFor(modelItem => item.Cli_Nombre) @Html.DisplayFor(modelItem => item.Cli_Apellido) @Html.DisplayFor(modelItem => item.Cli_Direccion) @Html.DisplayFor(modelItem => item.Cli_Telefono) @Html.DisplayFor(modelItem => item.Cli_Email)

  • @Html.ActionLink("Editar", "Edit", new { id=item.Cli_Codigo }) | @Html.ActionLink("Detalles", "Details", new { id=item.Cli_Codigo }) | @Html.ActionLink("Eliminar", "Delete", new { id=item.Cli_Codigo }) }