首页 > 解决方案 > 我可以在全局可用的静态类中创建 cookie 吗?

问题描述

我想从我的所有控制器中访问一些功能。其中的功能是写入和读取 cookie。

在之前的项目中,我在基本控制器中创建了全局函数,并让所有控制器都继承自该控制器。但现在我想以不同的方式来做。

我已将类文件AppFunctions.cs放在名为的根文件夹中AppFunctions

using Microsoft.AspNetCore.Http;
using System;
using System.Linq;

namespace Projects.AppFunctions
{
    public static class AppFunctions
    {
        public static void CreateCookie(string name, string value)
        {
            var options = new CookieOptions();
            options.Expires = DateTime.Now.AddMinutes(120);
            Response.Cookies.Append(name, value, options); // Red squiggly on Response
        }

        // More functions ...
    }
}

现在我面临两个问题:

  1. Response.Cookies.Append();不被识别,也不鼓励我添加任何使用来实现它。
  2. 当我尝试CreateCookie();从控制器调用时,我不能。错误消息是“该名称CreateCookie在当前上下文中不存在。并且using Projects.AppFunctions像这样添加或调用它也无济于事:AppFunctions.CreateCookie();

标签: c#asp.net-core

解决方案


尝试(响应在控制器的上下文中可用)

    public static void CreateCookie(Response response, string name, string value)
    {
        var options = new CookieOptions();
        options.Expires = DateTime.Now.AddMinutes(120);
        response.Cookies.Append(name, value, options); // Red squiggly on Response
    }

推荐阅读