Javascript 如何在MVC中使用ajax重定向

Javascript 如何在MVC中使用ajax重定向,javascript,ajax,model-view-controller,Javascript,Ajax,Model View Controller,我点击按钮,它获取输入值并重定向到javascript中的另一个页面,该页面类似于下面的window.location=“Action Param1=value1&Param2=Value2”。但是该方法使用了我想要避免的查询字符串。 所以我想到了使用ajax ` $.ajax({ type: "POST", url: "/MyController/MyAction", data: '{Param1:"value1",

我点击按钮,它获取输入值并重定向到javascript中的另一个页面,该页面类似于下面的
window.location=“Action Param1=value1&Param2=Value2”
。但是该方法使用了我想要避免的查询字符串。 所以我想到了使用ajax

   ` $.ajax({
            type: "POST",
            url: "/MyController/MyAction",
            data: '{Param1:"value1",Param2:"value2"}',
            contentType: "application/json,charset=utf-8",
            dataType: "json",
            success: function () {
            }
        });`
这会调用控制器,但不会返回任何内容。
我不知道我在这里做错了什么,一个工作代码将不胜感激。

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

return JavaScript("window.location = 'http:yourlink'");
这是最好的选择,但您希望传递数据,所以请按如下操作

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);
            }
        });

}
控制器:

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

}

可能重复:您可以使用数据填充表单,并将表单的
action
属性设置为要重定向到的页面。否则,只需使用Ajax发布,然后在成功处理程序
window.location.href=“the other url”
中,Ajax的全部要点就是保持在同一页面上。如果要重定向,请不要使用ajax!只需进行一次正常的提交,并保存自己编写的无意义脚本