首页 > 解决方案 > ASP.NET MVC 中的 Ajax 重定向

问题描述

我正在学习 ASP.NET MVC,并且在 Ajax 重定向中遇到问题。在普通帖子或接听电话中,我们可以将用户返回到某个特定页面,例如:

return RedirectToAction("AllStudents");

但是使用 json,它是不同的,或者我可能不太了解它。

我已经正常发布了我的代码,并且还转换为 Ajax。

我试过的

控制器代码一般:

[HttpGet]
public ActionResult Delete(int id)
{
    stude.DeleteStudent(id);
    return RedirectToAction("AllStudents");
}

我使用了 Ajax,它成功地完成了工作,但它没有将用户重定向到另一个页面,就像上面的代码一样,它将用户重定向到另一个页面。

我的 Ajax 控制器代码:

        [HttpPost]
    public JsonResult Delete(int id)
    {
        stude.DeleteStudent(id);
        return Json("true",JsonRequestBehavior.AllowGet);
    }

我的JS代码:

  // Delete record
        $("#del").click(function (e) {
            e.preventDefault();
            var id = $("#stid").val();
           //alert(id);
            $.ajax({
                method: "POST",
                url: "Delete/" + id,
                contentType: "application/json; charset=utf-8",
                async: true,
                  data: JSON.stringify(id),
                success: function (data) {
                    console.log(data);

                },
                error: function (err) {
                    console.log('Failed to get data' + err);
                }
            });


        });

执行该操作并删除数据,但浏览器停止如下:

更新

我的目标:我希望在不刷新页面的情况下删除数据,就像通常那样。还请分享一个链接,帖子,显示使用 ajax 刷新页面的内容。就像我想每 1 分钟刷新一个页面但不重新加载它。

更新:数据现在正在删除,但红色突出显示的(页面)没有刷新,我必须手动刷新,这是我不想要的。我想静默刷新它而不重新加载它。

标签: c#ajaxasp.net-mvcasp.net-ajax

解决方案


如果您只刷新网格,则创建超时方法如下:

 setTimeout(function() {get grid data by ajax call}, 10000);

如果你想重新加载整个页面然后

  1. 创建一个局部视图。
  2. 创建一个操作方法并返回 PartialView()。
  3. 创建ajax调用并获得响应以添加div,例如divid.html(data);

如果您每 1 分钟刷新一次页面,则创建一个超时函数并创建一个简单的 ajax。

 setTimeout(function() { ajax call}, 10000);

推荐阅读