我正在尝试了解MVC和会话。 我想要的是在加载应用程序时,如果没有用户登录,则显示登录页面,如果有用户登录,则显示主页。
我已经将此包装用于会话课程
public class SessionWrapper
{
private static SessionWrapper instance;
public static SessionWrapper Instance
{
get { return instance ?? (instance = new SessionWrapper()); }
}
private SessionWrapper()
{
}
public void Destroy()
{
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
FormsAuthentication.SignOut();
}
public UserInfo CurrentUser
{
get
{
return (UserInfo)HttpContext.Current.Session["CurrentUser"];
}
set
{
HttpContext.Current.Session.Add("CurrentUser", value);
}
}
这是BaseController
public class BaseController : Controller
{
protected Services Services { get; private set; }
protected new SessionWrapper sessionWrapper {get { return SessionWrapper.Instance; }}
protected ConfigWrapper Config { get { return ConfigWrapper.Instance; } }
public BaseController()
{
Services = new Services();
}
}
}
现在,这就是我的看法
<ul class="nav navbar-nav navbar-right">
@if(sessionWrapper.CurrentUser == null)
{
<li>@Html.ActionLink("Register", "Register", "Account")</li>
<li>@Html.ActionLink("Login", "Login", "Account")</li>
}
用户在登录后被添加到sessionWrapper中。
问题是无法在我的页面上识别sessionWrapper。如何使用?
我已经尝试过@using UserInterface.Wrappers
,但是没有用