Jquery Post没有达到MVC控制器

时间:2013-02-28 13:24:28

标签: c# asp.net-mvc jquery asp.net-mvc-4

道歉,如果这是微不足道的,我已经阅读了许多其他评论,但仍然看不出有什么问题。我做了一些教程,看起来工作正常,所以我真的错过了一些简单的东西。

我有一个基本的'删除'链接,我想做一个JQuery Post回到控制器,从数据库中删除一个项目,然后更新视图。

我的观点/ Javascript:

<script type="text/javascript">
$(function () {
    $(".RemoveLink").click(function () {
        var id = $(this).attr("data-id");

        if (id != '') {
            $.post("@Url.Content("~/Agent/Remove")", { "id": id }, function (data) { alert('Here i am'); });
        }
    });
});

    @foreach (var item in Model.Object) {
<tr id="row-@item.ID">
    <td>
        @Html.DisplayFor(modelItem => item.Description)
    </td>
    <td>
        <a href="#" class="RemoveLink" data-id="@item.ID" >Remove</a>
    </td>
</tr>
    }

我的控制器:

    [HttpPost]
    public ActionResult Remove(int id)
    {
        return Json(new { Data = "true" });
    }

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

改为使用@Url.Action("Remove", "Agent")

@Url.Content("...")用于查找网站的任何静态内容。

干杯

答案 1 :(得分:0)

以下代码效果很好。

   @foreach (var item in Model.Object) {
    <tr id="row-@item.ID">
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            <input type="button" class="RemoveLink"  id="@item.ID" Value="Remove" />

        </td>
    </tr>
        }

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $('.RemoveLink').live("click", function () {
            Remove($(this));
        });
    });

    function Remove(_this) {

        var Id= $(_this).attr('id');

        $.ajax({
            type: 'POST',
            url: '@Url.Action("Remove", "Agent")',
            data: "{id: '" + Id + "'}",
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (data) {
                //do something here......
            },
            error: function () {

            }
        });
    }
</script>