首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MVC中使用ajax进行重定向

如何在MVC中使用ajax进行重定向
EN

Stack Overflow用户
提问于 2018-05-31 18:51:31
回答 1查看 29关注 0票数 -1

我有一个按钮点击,它接受输入值,并重定向到另一个页面在javascript中的东西看起来像这样的window.location = "Action Param1=value1&Param2=Value2"。但是这个方法使用了查询字符串,这是我想避免的。所以我想到了使用ajax

代码语言:javascript
复制
   ` $.ajax({
            type: "POST",
            url: "/MyController/MyAction",
            data: '{Param1:"value1",Param2:"value2"}',
            contentType: "application/json,charset=utf-8",
            dataType: "json",
            success: function () {
            }
        });`

这会调用控制器,但不会返回任何内容。我不知道我在这里做错了什么,一个有效的代码将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 19:04:04

如果它只包含重定向到页面

代码语言:javascript
复制
return JavaScript("window.location = 'http:yourlink'");

是最好的选择,但您希望传递数据,因此请执行以下操作

代码语言:javascript
复制
function redi() {
        var date = new Date(); 
        var link = '@Url.Action("ActionMethod", "Home")';  var args = {
            param1: date.toISOString(),  
            param2: date.toISOString(),
            param3: 'yourdata'
        }; 

        $.ajax({
            type: "GET",
            url: link, 
            data: args, 
            dataType: "json",
            success: function (data) {

                window.location.href = data.redirecturl; 

            },
            error: function (httpRequest, textStatus, errorThrown) {   
                alert("Error: " + textStatus + " " + errorThrown + " " + httpRequest);
            }
        });

}

控制器:

代码语言:javascript
复制
[HttpGet]
    public ActionResult ActionMethod(DateTime param1, DateTime param2, string param3)
    {
        return Json(new { redirecturl = "http:yourlink" }, JsonRequestBehavior.AllowGet);

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

https://stackoverflow.com/questions/50622602

复制
相关文章

相似问题

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