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: