2

私のビューには次のjqueryコードがあります

<script type="text/javascript">
    $(document).ready(function () {
        $("#dialog-confirm").dialog({
            autoOpen: false,
            modal: true,
            resizable: false,
            width: '500px'
        });

        $(".deleteLink").click(function (e) {
            e.preventDefault();
            var targetUrl = $(this).attr("href");
            var dID = $(this).attr("id");
            $("#dialog-confirm").dialog({
                buttons: {
                    "Confirm": function () {
                        $.ajax({
                            url: '@Url.Action("DeleteSession")',
                            type: 'POST',
                            data: { id: dID },
                            success: function (data) {
                                    window.location.herf = data.redirectToUrl;
                            }
                        });
                    },
                    "Cancel": function () {
                        $(this).dialog("close");
                    }
                }
            });

            $("#dialog-confirm").dialog("open");
        });
    });
</script>

ダイアログボックスをトリガーするこのリンクは次のとおりです。

@Html.ActionLink("Delete", "", new { id = s.ID },new { @class = "deleteLink", id = s.ID})

コントローラメソッドは結果をDeleteSession返しますJson

コントローラ:

[HttpPost]
public JsonResult DeleteSession(int id)
{

    try
    {
        sRep.DeleteSession(id);
        return Json(new {success = true, redirectToUrl = Url.Action("Index")});
    }
    catch (Exception e)
    {
        return Json(new {success = false, redirectToUrl = Url.Action("DisplayError", new { eerror = 
                                    "Unable to delete the course. " + "Internal error: " + e.Message})});
    }

}

結果を調べましたが、Json問題ないようです。唯一の問題はwindow.location.herf = data.redirectToUrl;、機能しないことです。ページはリダイレクトされず、ダイアログボックスは引き続き画面に表示されます。

私が間違っていることは何ですか?

4

2 に答える 2

4

私はあなたがするつもりだったと思います window.location.href

元のコード:

window.location.herf = data.redirectToUrl;

次のように変更する必要があります。

window.location.href = data.redirectToUrl;
于 2012-06-03T01:34:38.537 に答える
0

あなたも使うことができます

$(window.location).attr('href',data.redirectToUrl);
于 2012-06-03T05:33:44.810 に答える