Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我想用方法post(javascript)重定向到操作时,控制器方法不会重定向并返回到上一页,为什么?_Javascript_Asp.net Mvc - Fatal编程技术网

当我想用方法post(javascript)重定向到操作时,控制器方法不会重定向并返回到上一页,为什么?

当我想用方法post(javascript)重定向到操作时,控制器方法不会重定向并返回到上一页,为什么?,javascript,asp.net-mvc,Javascript,Asp.net Mvc,查看代码: $.post('@Url.Action("SetPlayers", "Game")', { name : t }); 控制器代码: public class GameController : Controller { [HttpPost] public ActionResult SetPlayers(string name) { // some code...

查看代码:

$.post('@Url.Action("SetPlayers", "Game")', { name : t });
控制器代码:

public class GameController : Controller
    {
            [HttpPost]
            public ActionResult SetPlayers(string name)
            {
                // some code...
                return RedirectToAction("Some Action");
            }
    }
当我在方法SetPlayers上设置停止点时,该方法接收到变量,并且全部工作,但不重定向到操作。如何更改它?

$。post()向服务器发送AJAX请求。AJAX的全部要点是向服务器发送一个异步HTTP请求,而无需导航。如果要重定向,请不要使用AJAX。您可以改用
window.location.href
方法:

window.location.href = '@Url.Action("SetPlayers", "Game")?name=' + encodeURIComponent(t);
或者,如果只需要有条件地重定向,可以从控制器操作返回JSON,指向要重定向的位置,然后在客户端上执行实际重定向:

[HttpPost]
public ActionResult SetPlayers(string name)
{
    // some code...
    return Json(new redirectTo = { Url.Action("Some Action") });
}
然后:

$.post('@Url.Action("SetPlayers", "Game")', { name : t }, function(result) {
    if (result.redirectTo) {
        // the server returned The location to redirect to as JSON =>
        // let's redirect to this location
        window.location.href = result.redirectTo;
    }
});

$.post
是ajax请求,所以您不能在控制器端执行此操作。检查打字错误?不应该
rediretTo
重定向到
吗?正确答案:查看代码$.post('@Url.Action(“SetPlayers”,“Game”),{name:t},function(){window.location.href='@Url.Action(“List”,“Game”);});控制器代码[HttpPost]public void SetPlayers(字符串名称){//some code}方法SetPlayers不返回值。