首页 > 解决方案 > 如何更改剃须刀页面中的对象类型

问题描述

我有一个带有以下代码的 cshtml 文件

  @if (Session.CurrentUser == null)
                        {
                            <li>@Html.ActionLink("Register", "Register", "Account")</li>
                            <li>@Html.ActionLink("Login", "Login", "Account")</li>
                        }

Session obj 来自我制作的这个类

 public class BaseController : Controller
    {
        protected Services Services { get; private set; }
        protected new SessionWrapper Session { get { return SessionWrapper.Instance; } }
        protected ConfigWrapper Config { get { return ConfigWrapper.Instance; } }

        public BaseController()
        {
            Services = new Services();
        }
    }

所以 session 是 SessionWrapper 类型,它有一个 CurrentUser 属性。在我的 cshtml 文件中,Session 是类型 HttpSessionStateBase 我如何更改类型?我试过 SessionWraper.CurrentUser

标签: c#model-view-controller

解决方案


尝试更改变量名称:

protected SessionWrapper sessionWrapper;

public BaseController()
        {
            Services = new Services();
            sessionWrapper = new SessionWrapper.Instance;
        }

在剃须刀页面中也是如此:

@if (sessionWrapper.CurrentUser == null)

您在这里遇到的问题是Session被保留


推荐阅读