0

MVC 3を使用してWebアプリケーションを開発していますが、ユーザーがアイテムを正常に削除した後、ユーザーにメッセージを返したいと考えています。

MyWallControllerメソッドは次のようになります。

[HttpPost]
public ActionResult DeleteAlbum(Guid albumId)
{
    try
    {
        this.albumService.DeleteAlbum(albumId);
        return Json(new { success = true, msg = "Album successfully deleted" }, JsonRequestBehavior.AllowGet);
    }
    catch (FPSException e)
    {
        return Json(new { success = false, msg = e.Message });
    }
    catch (Exception)
    {
        throw new HttpException(500, "Error while deleting album");
    }
}

リンク:

<a class="open-DeleteAlbumDialog" href="http://localhost:2941/MyWall/DeleteAlbum?albumId=0f49b1ad-8ec1-4fca-b8e2-28bdbf47824e">Delete</a>

JavaScript:

$(function () {
    $(document).on('click', '.open-DeleteAlbumDialog', function () {
    var answer = confirm('Are you sure you want to delete this album?')
    if (answer) {
        $.post(this.href, function (data) {
            if (data.success) {
                // do something
            } else {
                // do something else
            }
        });
    }
    else return false;
});

ただし、post内で定義された関数が呼び出されることはなく、「リソースが見つかりません」というメッセージが表示されます。しかし、アイテムは正常に削除されました。

あらゆる種類の助けをいただければ幸いです。

4

1 に答える 1

2

あなたのリンクはまだ機能しています。あなたがする必要がありますpreventDefault

$(function () {
    $(document).on('click', '.open-DeleteAlbumDialog', function (e) {
    e.preventDefault();
    var answer = confirm('Are you sure you want to delete this album?')
    if (answer) {
        $.post(this.href, function (data) {
            if (data.success) {
                // do something
            } else {
                // do something else
            }
        });
    }
});
于 2012-10-28T21:12:03.187 に答える