Pour chaque page demandée, j'ai besoin de vérifier un cookie ou de le créer s'il n'y en a pas. Si le cookie est là, j'ai besoin de charger quelques informations de la base de données en fonction du contenu de ce cookie. Pour cela, j'ai créé un contrôleur de base appelé AppController dont mes autres contrôleurs héritent.asp.net mvc ne peut pas accéder aux données de cookie dans le contrôleur de base
alors j'ai quelque chose comme ça (de sorte que l'objet CurrentSessionValues est disponible à tous mes contrôleurs):
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
}
}
Quand je cours, je reçois cette erreur dans default.aspx:
Une erreur s'est produite lors de la création d'un contrôleur de type 'Mvc_Learn.Controllers.HomeController'.
Si le contrôleur ne dispose pas d'une usine de contrôleur , assurez-vous qu'il a un constructeur public sans paramètre.
Il brise sur Request.Cookies [ « MySiteCookie »]
Dois-je faire cette logique d'une autre manière ou d'un autre endroit?
Merci - en utilisant ce que j'ai pu utiliser: requestContext.HttpContext.Request.Cookies ["MysiteCookie"] – Nils