为什么页面没有被重定向?

时间:2014-06-20 05:09:21

标签: jquery ajax asp.net-mvc

我从ajax调用了一个删除控制器。删除数据并执行成功功能,但页面不会重定向到控制器中提到的新页面。 这是我的ajax代码:

                   function deletex(ids)
                 {
                   var x={id:ids};
                var a=confirm("are you sure to delete this data of id"+x["id"]);
                   if(a==true)
                     {
        $.ajax({
            type: "POST",
            url: "Delete",
            data: x,
            dataType:"HTML",
            success: function (data) {
                Set(data);
                alert("data is deleted");


            },
            error:
                function e()
                {
                    alert("error");
                }
        });
    } else 
        alert("You cancelled it");
}

我的控制器:

[HttpPost]
    public ActionResult Delete(long id)
    {
        country country = db.countries.Find(id);
        db.countries.Remove(country);
        db.SaveChanges();
        return RedirectToAction("Create","countries");
    }

2 个答案:

答案 0 :(得分:0)

你这样做的正确方法是,从删除控制器返回一个JSON对象,它将指示删除是否成功,然后从ajax的success方法返回,具体取决于返回的JSON对象的值,重定向到您选择的行动。

答案 1 :(得分:0)

只需更改脚本

即可
<script>
    function deletex(ids) {
        var x = { id: ids };
        var a = confirm("are you sure to delete this data of id" + x["id"]);
        if (a == true) {
            alert(1);
            $.ajax({
                type: "POST",
                url: '@Url.Action("Delete","CheckIn")',
                data: x,
                dataType: "Json" 
            });
        }
        else {
            alert("You cancelled it");
        }
    }

</script>

in thai我改变dataType:“Html”到dataType:“Json”

并删除Ajax成功和错误功能,因为它重定向到其他页面