C# 重定向到另一页而不发送查询字符串中的任何值

C# 重定向到另一页而不发送查询字符串中的任何值,c#,javascript,jquery,asp.net-mvc-4,C#,Javascript,Jquery,Asp.net Mvc 4,我试图在用户第一次登录时执行用户验证。如果用户尚未验证,则我将其userid从code-to-callback方法发送 在回调中,我使用 (window.location.href = "/verifyuser?id=" + response.userId) 但是我不想这样。相反,我希望使用该值对url进行ajax调用。我不希望用户ID在url中可见。 我试着用 $.ajax({ type:"POST" url:"/verifyuser", da

我试图在用户第一次登录时执行用户验证。如果用户尚未验证,则我将其
userid
从code-to-callback方法发送 在回调中,我使用

(window.location.href = "/verifyuser?id=" + response.userId)
但是我不想这样。相反,我希望使用该值对url进行ajax调用。我不希望用户ID在url中可见。 我试着用

$.ajax({

     type:"POST"        
     url:"/verifyuser",
     data:{id:response.userId},
     async:false
});
但它不起作用。我的服务器端代码如下(我使用的是MVC4)

我的js代码如下:

var postObj = {

            url: "Home/Login",
            data: {},
            callback: function (status, response) {
                if (response.status === 400) {
                    var errors = response.errors;
                    var serverValidate = new PS.Validate(userObj);
                    var isvalid = serverValidate.showErrors(errors);
                }
                else {

                    if (response.userId !== null && response.userId !== undefined) {

                        window.location.href = "/verifyuser?id=" + response.userId;
                    }
                    else {
                        window.location.href = "/user-dashboard";
                    }
                }
            }
        };
me.fm.post(postObj);

有没有办法在使用或不使用Ajax的情况下做到这一点?谢谢。

如果将AJAX请求更改为POST,还必须允许控制器操作响应POST请求

[HttpPost]
public ActionResult VerifyUser(string id)
{           
    ViewBag.Id = id;
    return View("~/Views/User/VerifyUser.cshtml");
}

如果您不想进行ajax调用,可以在控制器中返回RedirectToAction ActionResult,但必须确保页面使用的是实际表单post,而不是使用ajax如果使用ajax的唯一原因是停止查询字符串中显示的值,那么只需将form方法更改为
POST
。什么不起作用?请求没有提出?服务器没有收到请求?服务器返回了一个错误?
[HttpPost]
public ActionResult VerifyUser(string id)
{           
    ViewBag.Id = id;
    return View("~/Views/User/VerifyUser.cshtml");
}