Для каждой запрашиваемой страницы мне нужно проверить файл cookie или создать его, если его там нет.
Если файл cookie существует, мне нужно загрузить некоторую информацию из БД на основе содержимого этого файла cookie.
Для этого я создал базовый контроллер под названием AppController, от которого наследуются другие мои контроллеры.
тогда у меня что-то вроде этого (так что объект CurrentSessionValues доступен для всех моих контроллеров):
public MySession CurrentSessionValues;
public ApplicationController()
{
if (Request.Cookies["MySiteCookie"] == null)
{
// create new Record in DB
CurrentSessionValues = CreateMySession();
HttpCookie cookie = new HttpCookie("MySiteCookie");
cookie.Value = CurrentSessionValues.SessionID.ToString;
Response.SetCookie(cookie);
}
else
{
// use the value in MySiteCookie to get values from the DB
// e.g. logged in user id, cart id, etc
}
}
Когда я запускаю это, я получаю эту ошибку в default.aspx:
Произошла ошибка при создании
контроллер типа
'Mvc_Learn.Controllers.HomeController'.
Если у контроллера нет
контроллер фабрики, убедитесь, что он имеет
открытый конструктор без параметров.
Это прерывается по запросу. Cookies ["MySiteCookie"]
Должен ли я делать эту логику каким-то другим образом или в другом месте?