Как вызвать метод контроллера из Javascript

Я показываю кучу фильмов в таблице, я в конечном итоге удаляю каждый фильм через Javascript, который скрывает div.

теперь я хочу удалить фильм из базы данных, так что лучший способ вызвать метод контроллера из Javascript?

4 ответов


есть протоколы HttpPost метод действия для удаления в вашем movie контроллер

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

а на ваш взгляд,

<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>

в зависимости от вашего кода, это может быть как простой, как:

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

попробуйте следующее: (используя 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) {

        }
    });
});

Попробуйте Это,

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