Tumgik
koudnouts · 5 years
Text
Confirmación de acción
Los actionlinks nos permiten ejecutar una acción del controlador:  <td>@Html.ActionLink("Eliminar", "DeleteRecurso", "Market", new { id = r.id, confirm = true }, null) </td>
Al hacer click en este enlace se ejecutará esta acción del controlador.
    public ActionResult DeleteProducto(int id, bool confirm = false)        {            if (confirm)            {                Models.Market market = new Models.Market();                market.DeleteProducto(id);            }            return RedirectToAction("Index");        }
Hemos intentado dar un parámetro de confirmación de borrado, dado que esta es una operación que deseamos confirmar. Sin embargo este parámetro se obtiene del lado del cliente, por lo que no vemos forma de cambar ese “confirm”, que es estático.
Para ello necesitamos recurrir a una función javascript de confirmación y una ejecución de la acción del controlador si procede.
function confirmDelete(url,data) {    if (confirm("Desea realmente elinminar?")) {        console.log("delete");        $.ajax({            url: url,            data: data        }).done(function () { alert("Acción realizada") });    } }
Sustituiremos el actionlink anterior por la una llamada a esta función para el evento click.
<td onclick="confirmDelete('@Url.Action("DeleteRecurso","Market")',{id: @r.id, confirm:true})"> Eliminar</td>
0 notes