Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
Asp.net mvc 从异步操作重定向到操作_Asp.net Mvc_Async Await_Redirecttoaction - Fatal编程技术网

Asp.net mvc 从异步操作重定向到操作

Asp.net mvc 从异步操作重定向到操作,asp.net-mvc,async-await,redirecttoaction,Asp.net Mvc,Async Await,Redirecttoaction,我有以下代码 public async Task<ActionResult> login(string login, string password) { User objUser = new User(); string result = await HomeAPI.getlogin(login, password); if (!string.IsNullOrEmpty(result))

我有以下代码

 public async Task<ActionResult> login(string login, string password)
        {
            User objUser = new User();
            string result = await HomeAPI.getlogin(login, password);
            if (!string.IsNullOrEmpty(result))
            {
                try
                {
                    objUser = JsonConvert.DeserializeObject<User>(result);
                    if (!ReferenceEquals(objUser.api_key, null))
                    {
                        return await Task.Run<ActionResult>(() =>
                        {
                            if (true)
                            {
                                return RedirectToAction("Index", "Project");
                            }
                        });
                    }
                }
                catch (Exception ex)
                {

                }
            }
            return View();
        }
公共异步任务登录(字符串登录,字符串密码)
{
User objUser=新用户();
字符串结果=wait HomeAPI.getlogin(登录名,密码);
如果(!string.IsNullOrEmpty(结果))
{
尝试
{
objUser=JsonConvert.DeserializeObject(结果);
如果(!ReferenceEquals(objUser.api_key,null))
{
返回等待任务。运行(()=>
{
如果(真)
{
返回操作(“索引”、“项目”);
}
});
}
}
捕获(例外情况除外)
{
}
}
返回视图();
}
和项目控制员,如thsi

 public async Task<ActionResult> Index()
        {
            return  View();
        }
公共异步任务索引()
{
返回视图();
}
它击中了项目控制器的动作,但重定向不起作用,这意味着仍然在登录页面上

我也尝试了每个建议

 public async Task<ActionResult> Index()
        {
           ActionResult x = await Index();
            return  View();
        }
公共异步任务索引()
{
ActionResult x=等待索引();
返回视图();
}
它抛出溢出异常


我被困在如何重定向到project controller视图中。

您确定try/catch中没有引发异常吗?api_密钥不为空?尝试在调试中运行它,然后查看。添加一些跟踪,以便在日志文件中查看正在发生的情况。永远不要让一个空的捕获,因为你不会意识到异常。我已经调试了代码,并确保没有异常存在,它击中了项目控制器,但视图没有呈现,仅当你在
return RedirectToAction(“Index”,“project”)上设置断点时,登录视图才会被卡住它停止了吗?是的,它遇到了断点是常规HTTP调用还是AJAX调用?服务器对浏览器的响应是什么?你能看到服务器发送HTTP 302吗?使用Chrome inspector: