J'ai un problème de cookie dans l'exemple ci-dessous. le cookie est créé et quand je mets un point de débogage après sa création je peux vérifier ce qui est dans le cookie avec une montre. cependant, quand je redémarre le site Web, le cookie est toujours là, mais est devenu vide et ne créera pas le modèle (tous les champs vides sont null.)bizarre problème de cookies MVC2
J'ai regardé autour et ai trouvé des bogues relatifs à l'aide de response.Cookie et ayant pas de date d'expiration, mais j'ai changé les choses et ça reste vide. Est-ce que je fais quelque chose de mal ou est-ce parce que j'utilise localhost im?
[HttpGet]
[Autorize]
public ActionResult ManagePaymentRun()
{
ViewData["currentAction"] = "Index";
payments.AccountNo = Request.Cookies["FSCSPayments"]["AccountNo"];
payments.SortCode = Request.Cookies["FSCSPayments"]["SortCode"];
payments.FirstChequeNo = "2";// Request.Cookies["FSCSPayments"]["FirstChequeNo"];
payments.FileName = Request.Cookies["FSCSPayments"]["FileName"];
payments.FRN = Request.Cookies["FSCSPayments"]["FRN"];
payments.JobNumber = Request.Cookies["FSCSPayments"]["JobNumber"];
payments.StartRecNo = Request.Cookies["FSCSPayments"]["StartRecNo"];
return View(payments);
}
internal void CreateCookie()
{
HttpCookie cookie = new HttpCookie("FSCSPayments");
cookie.Values.Add("AccountNo", payments.AccountNo);
cookie.Values.Add("SortCode", payments.SortCode);
cookie.Values.Add("FirstChequeNo", payments.FirstChequeNo);
cookie.Values.Add("FileName", payments.FileName);
cookie.Values.Add("FRN", payments.FRN);
cookie.Values.Add("JobNumber", payments.JobNumber);
cookie.Values.Add("StartRecNo", payments.StartRecNo);
cookie.Expires = DateTime.Now.AddDays(14);
cookie.Path = "/";
Request.Cookies.Add(cookie);
}
Si une date d'expiration future n'est pas définie pour le cookie, il s'agit alors d'un cookie de niveau session et sera généralement détruit lorsque le navigateur se ferme ou que la session expire (en fonction du navigateur). Où dans votre code appelez-vous 'CreateCookie()'? Quand vous dites que vous redémarrez le site Web et que le cookie est là, que voulez-vous dire? Vous le trouvez dans le cache des cookies du navigateur? Si le cookie est persistant, il est indépendant des arrêts et des démarrages du serveur. –
Si je recherche le cache de cookies, il est là. J'ai ajouté un jour d'ajout à mon cookie, donc ce ne devrait pas être un cookie de session, n'est-ce pas? et le createcookie est appelé dans l'action ManagePaymentRun HttpPost, et j'ai mis un point de débogage dans cookie de création et il passe là. – Andy