2012-06-08 96 views
5

Estoy mostrando un montón de películas en una tabla, eventualmente estoy eliminando cada película a través de Javascript que oculta el div.Cómo llamar a un método de controlador desde Javascript

Ahora quiero eliminar la película de la base de datos también, así que ¿cuál es la mejor manera de llamar al método del controlador desde el Javascript?

+4

montón de maneras. Puede crear un formulario con los datos y publicarlo, puede seguir un enlace GET en el formato adecuado, puede invocar una llamada AJAX ... su pregunta no es lo suficientemente específica –

+3

enviar un mensaje POST o ELIMINAR con AJAX es la forma de ir. acciones destructivas como eliminaciones no deberían hacerse con un GET – kenwarner

+0

¿Puedes mostrar tu método de controlador y cómo/dónde estás rellenando el ID de película que deseas eliminar en tu javascript? –

Respuesta

4

tener un método HttpPost acción para eliminar en su controlador movie

[HttpPost] 
public ActionResult Delete(int id) 
{ 
    try 
    { 
    repo.DeleteMovie(id); 
    return "deleted" 
    } 
    catch(Exception ex) 
    { 
    //Log errror 
    } 
    return "failed"; 
} 

Y en su opinión,

<a href="#" data-movieId="34" class="movie">Delete Avengers</a> 
<a href="#" data-movieId="35" class="movie">Delete Iron Man</a> 
<script type="text/javascript"> 
$(function(){ 

    $(".movie").click(function(e){ 
    e.preventDefault(); 
    $.post("@Url.Action("Delete","Movie")", { id : $(this).data("movieId")} ,function(data){ 
     alert(data); 
    }); 
    }); 
}); 

</script> 
3

Dependiendo de su código que podría ser tan simple como:

$.post("/controller/method" + id); 
1

Prueba esto: (Usando jQuery Ajax)

$("#DeleteButtonID").on("click", function() { 
    $.ajax(
    { 
     type: "POST", 
     page: 1, 
     rp: 6, 
     url: '@Url.Action("PopulateDataListWithHeader", "DataList")' + "?id=" + YOURID, 
     dataType: "json", 
     success: function(result) { 

     }, 
     error: function(x, e) { 

     } 
    }); 
}); 
0

probar esto,

function(){ 
    var url = '@Url.Action("SearchReoccurence", "SearchReoccurence", new { errormessage = "__msg__" })'; 
} 
Cuestiones relacionadas