【问题标题】:How to use session and call from class asp.net mvc 6如何使用会话和从类 asp.net mvc 6 调用
【发布时间】:2023-04-03 06:55:01
【问题描述】:

我正在尝试从 Iactionresult 内部的调用类中使用 asp.net mvc 6 中的会话。

我的课程为“SessionTool 如下”

SessionTool 类:

public class SessionTool
{
        private readonly IHttpContextAccessor HttpContextAccessor;

        public SessionTool(IHttpContextAccessor httpContextAccessor)
        {
            HttpContextAccessor = httpContextAccessor;
        }

        public void SetSession(string key, string value)
        {
            HttpContextAccessor.HttpContext.Session.SetString(key, value);
        }

        public string GetSession(string key)
        {
            return HttpContextAccessor.HttpContext.Session.GetString(key);
        }
 }

我有 HomeController 如下。

public class HomeController : Controller
{

        [HttpGet]
        public IActionResult Login() 
        {


        SessionTool sessionTool = new SessionTool(IHttpContextAccessor);


        }
}

问题:

如果我尝试如下调用 SessionTools 类,IHttpContextAccessor 会显示警告,因为 IHttpContextAccessor 是一种类型,在给定的上下文中无效。

SessionTool sessionTool = new SessionTool(IHttpContextAccessor);

我是 asp.net mvc 6 的新手,我不确定如何将 IHttpContextAccessor 的新实例设置为会话工具而不是使用会话类?

任何帮助将不胜感激。 谢谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc session asp.net-core-mvc


    【解决方案1】:

    我的会话助手类使用静态类。在那个助手类上,我有静态属性,它们从具有特定键的会话中返回数据。 这是我的会话结构示例。

      public static class TaskManSession
    {
        public static int SelectedProjectId
        {
            get
            {
               if (System.Web.HttpContext.Current.Session["ProjectId"] ==null)
                   {
                     return 0;
                   }
                return Convert.ToInt32(System.Web.HttpContext.Current.Session["ProjectId"]);
            }
            set
            {
                System.Web.HttpContext.Current.Session["ProjectId"] = value;
            }
        }
    }
    

    人们不喜欢使用静态类,因为很难将 TDD(测试驱动开发)与静态类一起使用。你可以从here阅读更多内容

    但是“System.Web.HttpContext.Current.Session”类也没有实例。因此,我认为使用静态助手没有任何问题。

    【讨论】:

      猜你喜欢
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多