2018-05-30  314 views 评论

ASP.NET MVC Ajax请求成功跳转视图问题

 标签:      

有朋友问我在ASP.NET MVC中,使用ajax请求后端方法/接口,在成功后如何跳转指定的视图

针对这个问题,需要解答的有两点:

1、Ajax使用通常是请求当前页面需要的数据,如果不是必要情况,通过Ajax请求某一个方法通常也是由前端来处理返回的结果,实在有问题后台处理方法直接返回指定的View也是可行的。

2、如果真的需要在Ajax请求后跳转到某个视图,可以针对返回的数据进行处理,将需要跳转的视图Url写入返回的数据,随后在Ajax的success  事件中进行跳转。

如下:

前端Ajax请求:

$.ajax({ 
    url: '/Demo/Save',
    type: "POST",
    data: JSON.stringify(data),
    dataType: "JSON",
    contentType: "application/json",
    success: function (d) {
        if (d.status == true) {
            alert('Successfully done.');
            window.location.href = d.Url;
        }
        else {
            alert('Failed');
        }
        $('#submit').val('Save');
    },     
});

服务端方法:

public JsonResult Save(DemoModel dto)
{
    //DOTO
    //返回的数据中包含 跳转地址
    return Json(new { url = "/Demo/RedirectUrl" });
}

//或者直接返回视图

public JsonResult Save(DemoModel dto)
{
    //DOTO
    return View("RedirectUrl");
}

 

给我留言

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: