Могу ли я создать повара ie в общедоступном классе stati c? - PullRequest
0 голосов
/ 04 мая 2020

Я хочу получить доступ к некоторым функциям со всех моих контроллеров. Среди функций - запись и чтение файлов cookie.

В предыдущих проектах я создавал глобальные функции в базовом контроллере и наследовал все контроллеры. Но теперь я хотел бы сделать это по-другому.

Я поместил файл класса AppFunctions.cs в папку root с именем 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();

1 Ответ

1 голос
/ 04 мая 2020

Try (ответ доступен в контексте контроллера)

    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
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...