// // GET: /Inicio/Edit/5 public ActionResult Edit(int id) { ViewData["Localizaciones"] = new SelectList(RepositorioClientes.ObtenerLocalizaciones(), "IdLocalizacion", "Ciudad"); var cliente = RepositorioClientes.ObtenerCliente(id); return View(cliente); } // // POST: /Inicio/Edit/5 [HttpPost] public ActionResult Edit(int id, FormCollection collection) { var cliente = RepositorioClientes.ObtenerCliente(id); if (cliente == null) return RedirectToAction("Index"); try { UpdateModel(cliente, collection.ToValueProvider()); RepositorioClientes.ActualizarCliente(cliente); RepositorioClientes.Guardar(); TempData["ConfirmationMessage"] = cliente.Nombre + " has been updated."; return RedirectToAction("Index"); } catch (Exception) { return View(cliente); }; }
Código de la Vista "Edit.aspx":
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication4.Models.Cliente>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Editar </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Editar</h2> <% using (Html.BeginForm()) {%> <%: Html.ValidationSummary(true) %> <fieldset> <legend>Datos Cliente</legend> <div class="editor-label"> <%: Html.LabelFor(model => model.Nombre) %> </div> <div class="editor-field"> <%: Html.TextBoxFor(model => model.Nombre) %> <%: Html.ValidationMessageFor(model => model.Nombre) %> </div> <div class="editor-label"> <%: Html.LabelFor(model => model.Apellidos) %> </div> <div class="editor-field"> <%: Html.TextBoxFor(model => model.Apellidos)%> <%: Html.ValidationMessageFor(model => model.Apellidos)%> </div> <div class="editor-label"> <%: Html.LabelFor(model => model.IdLocalizacion) %> </div> <div class="editor-field"> <%: Html.DropDownListFor(model=>model.IdLocalizacion, (ViewData["Localizaciones"] as SelectList))%> <%: Html.ValidationMessageFor(model => model.IdLocalizacion)%> </div> <p> <input type="submit" value="Save" /> </p> </fieldset> <% } %> <div> <%: Html.ActionLink("Volver a Listado Cliente", "Index") %> </div> </asp:Content>