无法使用Ajax调用调用控制器方法

时间:2014-03-19 12:42:54

标签: ajax asp.net-mvc-4

控制器:

[HttpPost]
    public void DeleteState(string id)
    {
        int id1=Convert.ToInt32(id);
        var _db = new clubDataContext();
        var state = from m in _db.StateInfos where m.S_ID == id1 select m;
        foreach (var m in state)
        {
            _db.StateInfos.DeleteOnSubmit(m);
        }
        try
        {
            _db.SubmitChanges();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }


    }

查看:

<input id="state-id" type="text" value=@item.S_ID  style="display:none"/>
<td>
<a id="delete-link" href="" >Delete</a>
</td>

$("#delete-link").click(function(){
    $.ajax({
    url: '@Url.Action("DeleteState", "ManageSystem")',
    data: {'id':$("#state-id").val(); } ,
        success: function(result) {
        $('#edit-state').html("State Deleted Successfully");
    }
    });

    }     
  });

我不知道是什么原因但是当我点击删除时没有调用控制器方法。有Ajax问题吗?我已经包含了Ajax Library。

主要的是我忘了提到我的视图是局部视图,我从这个局部视图调用控制器方法。所以我认为jQuery没有加载

2 个答案:

答案 0 :(得分:0)

我认为问题是:您的控制器属于HttpPost类型。确保Ajax调用的类型为Post。使用type: "POST"了解详情,请访问jQuery ajax Documentation

答案 1 :(得分:0)

终于得到了解决方案。 之前已经提出过这个问题。对不起!

Is it OK to put JavaScript in Partial Views

这里我在stackoverflow本身遇到了类似的问题。

1)MVC4 partial view javascript bundling Issue

2)javascript-not-working-in-partial-view

3)document-ready-is-not-working-correctly-in-partial-view

4)How to execute JavaScript function on PartialView load in MVC 3

所以在我的项目中,我制作了单独的.js文件,使javascript可以执行,然后我就像这样调用这个js文件。

局部视图:

<script src="~/Scripts/stategrid.js" type="text/javascript"></script>