【问题标题】:How to call a controller method from Javascript如何从 Javascript 调用控制器方法
【发布时间】:2012-06-12 13:51:27
【问题描述】:

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

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

【问题讨论】:

  • 方法很多。您可以使用数据构建一个表单并发布它,您可以按照正确格式的 GET 链接,您可以调用 AJAX 调用...您的问题不够具体
  • 使用 AJAX 提交 POST 或 DELETE 是可行的方法。不应该使用 GET 来完成像删除这样的破坏性操作
  • 您能否展示您的控制器方法以及如何/在何处填充您想在 javascript 中删除的电影 ID?

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


【解决方案1】:

试试这个,

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

【讨论】:

    【解决方案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】:

      在您的 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>
      

      【讨论】:

        【解决方案4】:

        根据您的代码,它可能很简单:

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

        【讨论】:

          猜你喜欢
          • 2020-10-09
          • 2015-02-22
          • 1970-01-01
          • 1970-01-01
          • 2017-02-22
          • 2016-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多