我的ASP.net MVC 3应用程序中有以下继承层次结构:
public class HomeController : AuthenticatedBaseController
{
public ActionResult Index()
{
return View();
}
}
public class AuthenticatedBaseController : BaseController
{
public AuthenticatedBaseController()
{
if (!this.UserToken.IsAuthenticated)
{
RedirectToAction("Login", "Login");
}
}
}
public class BaseController : Controller
{
private Token _token;
public Token UserToken
{
get
{
_token = (Token)(Session["token"]);
if (_token == null)
{
SetToken();
}
return _token;
}
}
public void SetToken()
{
_token = new Token(Session.SessionID, Request.Url.Host, Request.Url.ToString());
Session["token"] = _token;
}
}
当我向/ Home发出GET请求时,我发现AuthenticatedBaseController
的构造函数正在触发两次。有人可以帮我告诉我我做错了吗?
答案 0 :(得分:1)
要回答你的问题,它会触发两次因为你将用户重定向到另一个动作,这会导致另一个请求,这会导致另一个控制器实例被创建。