为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Json 的 MVC 重定向操作

使用 Json 的 MVC 重定向操作

C#
慕娘9325324 2021-07-02 14:00:05
目的:编写的代码假设使用Json保存所有内容并重新执行操作。问题:当前使用 Json 的重定向不允许重定向。return new JsonResult { Data = new { status = status } };代码如下供参考: 寻找建议:查看代码$.ajax({     url: '/SA/Save',    type: "POST",    data: JSON.stringify(data),    dataType: "JSON",    contentType: "application/json",    success: function (d) {        //check is successfully save to database        if (d.status == true) {            //will send status from server side            alert('Successfully done.');            window.location.href = d.Url;            //clear form            t = [];            d = [];            r = [];            $('#SN').val('');            $('#SA').val('');            $('#t').empty();            $('#d').empty();            $('#r').empty();        }        else {            alert('Failed');        }        $('#submit').val('Save');    },     });控制器public JsonResult Save(SAVM O,){    bool status = false;    var userId = User.Identity.GetUserId();    if (ModelState.IsValid)    {        SA s = new SA        {        }        _db.SA.Add(O)        _db.SaveChanges();        status = true;    }    else    {        status = false    }    return new JsonResult { Data = new { status = status }  };}这里想像这样重定向:return RedirectToAction("F", "SA"); 但使用 JsonResult解决方案看法$.ajax({ url: '/SA/Save',type: "POST",data: JSON.stringify(data),dataType: "JSON",contentType: "application/json",success: function (d) {window.location.href = d.Url;})} });控制器public JsonResult Save(SAVM O,){var userId = User.Identity.GetUserId();if (ModelState.IsValid){    SA s = new SA    {    }    _db.SA.Add(O)    _db.SaveChanges(); return Json(new { Url = "F/SA" });}
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

您在这里有几个选择,您可以根据自己的要求决定更喜欢哪一个。

  1. 不要使用 AJAX。AJAX 请求用于获取当前页面所需的数据。您应该使用同步请求进行重定向。

  2. 返回客户端应在success事件上重定向到的 URL :

    return Json(new { url = "/F/SA" });

    然后:

    success: function (d){
        window.location.url = d.url;}
  3. 返回已经渲染的 View 并将其加载到当前页面:

    return View("some view...");

    然后:

    success: function (d){
        $("#someElement").html(d);}


查看完整回答
反对 回复 2021-07-11
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信