如何从Javascript调用控制器方法

时间:2012-06-08 13:37:28

标签: asp.net .net asp.net-mvc-3

我正在表格中显示一堆电影,我最终通过隐藏div的Javascript删除每部电影。

我现在也想从数据库中删除电影,那么从Javascript调用控制器方法的最佳方法是什么?

4 个答案:

答案 0 :(得分:5)

要在movie控制器中删除 HTTPPost 操作方法

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

答案 1 :(得分:3)

根据您的代码,它可以简单如下:

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

答案 2 :(得分:2)

试试这个:(使用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) {

        }
    });
});

答案 3 :(得分:0)

试试这个,

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