0

抱歉,如果这很琐碎,我已经阅读了许多其他评论,但仍然看不出有什么问题。我已经完成了一些教程,它们似乎工作正常,所以我真的错过了一些简单的东西。

我有一个基本的“删除”链接,我想做一个 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" });
    }

任何帮助都会很棒。

4

2 回答 2

1

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

@Url.Content("...")用于定位站点的任何静态内容。

干杯

于 2013-02-28T13:29:27.773 回答
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>
于 2013-02-28T13:47:17.377 回答