首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Json的MVC重定向操作

使用Json的MVC重定向操作
EN

Stack Overflow用户
提问于 2018-05-30 07:25:21
回答 1查看 310关注 0票数 -2

目的:编写的代码应该使用Json保存所有内容,并将其重定向到action。

问题:当前使用Json的重定向不像假设的那样允许重定向。返回新的数据{ JsonResult =新的{状态=状态} };

以下代码供参考:寻找建议:

查看代码

代码语言:javascript
复制
$.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');
    },     
});

控制器

代码语言:javascript
复制
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 }  };
}

这里想要像这样重定向:

代码语言:javascript
复制
return RedirectToAction("F", "SA"); 

但是使用JsonResult

解决方案

视图

代码语言:javascript
复制
$.ajax({ 
url: '/SA/Save',
type: "POST",
data: JSON.stringify(data),
dataType: "JSON",
contentType: "application/json",

success: function (d) {

window.location.href = d.Url;

})
} });

控制器

代码语言:javascript
复制
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" });

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 07:38:03

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

  1. 不使用AJAX。AJAX请求用于当前页面所需的数据。您应该对success事件中客户端重定向到的redirection.
  2. Return使用同步请求:

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

然后:

成功: function (d) { window.location.url = d.url;}

  • 返回已呈现的视图并将其加载到当前页面:

return view(“某些视图...”);

然后:

成功: function (d) {$(“#.html success”).html(D);}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50594336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档