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 に答える