2012-06-08 21 views
5

Ich zeige eine Reihe von Filmen in einer Tabelle, ich lösche schließlich jeden Film durch Javascript, die die div versteckt.So rufen Sie eine Controller-Methode aus Javascript

Ich möchte jetzt den Film aus der Datenbank löschen, also was ist der beste Weg, die Controller-Methode aus dem Javascript aufzurufen?

+4

viele Möglichkeiten. Sie könnten ein Formular mit den Daten erstellen und es veröffentlichen, Sie könnten einem GET-Link im richtigen Format folgen, Sie könnten einen AJAX-Aufruf aufrufen ... Ihre Frage ist nicht spezifisch genug –

+3

Senden eines POST oder DELETE mit AJAX ist der Weg zu gehen. destruktive Aktionen wie Löschungen sollten nicht mit einem GET durchgeführt werden – kenwarner

+0

Können Sie Ihre Controller-Methode zeigen und wie/wo Sie die Film-ID, die Sie in Ihrem Javascript löschen möchten, auffüllen? –

Antwort

4

Haben sie eine Httppost Aktionsmethode in Ihrem movie Controller

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

Und in Ihrer Ansicht,

löschen
<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

Je nach Code könnte es so einfach sein wie:

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

Versuchen Sie folgendes: (Mit 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

Das Versuchen,

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