以下代码片段来自我的ASP.NET MVC 5应用程序:
这个想法是,如果用户尚未登录,则会被带到登录页面,然后返回到这个“Ask”页面。当用户输入例如
public ActionResult Ask(string id) {
if (!this.User.Identity.IsAuthenticated) {
string retUrl = Request.Url.AbsoluteUri;
return RedirectToAction("Login", "Account", new { returnUrl = retUrl });
}
...
}
这个想法是,如果用户尚未登录,则会被带到登录页面,然后返回到这个“Ask”页面。当用户输入例如
http://example.com/Home/Ask/12345678
时,Ask()方法将使用正确的ID值被调用。现在用户被重定向到登录页面。在AccountController中的Login()代码成功验证用户之后,它调用ReturnToLocal(),传入我们期望的URL(http://example.com/Home/Ask/12345678
)。但是,ASP .NET没有调用Ask()方法,而是调用了Index()方法。请协助理解为什么我的重定向出现问题。谢谢!