Upload
jorge-luis-bazan-medina
View
234
Download
0
Embed Size (px)
DESCRIPTION
pasos para MVC
Citation preview
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 }) }