如何在同一个cookie .net mvc中保存访问过的网页网址ID

时间:2018-06-18 14:54:58

标签: c# .net asp.net-mvc cookies

您好我想将我上次访问过的产品详细信息页面ID保存在一个Cookie中。对于ex.first,我是随机轮胎页面和第一个cookie值44然后一个接一个地访问其他页面url id 65。我该怎么办?可以将它们保存在List中以获取cookie值,因为它需要什么?谢谢你的帮助。

       public ActionResult DetailShow(int id)
    {
        string cokvalue = ControllerContext.RouteData.Values["id"].ToString();

        List<string> view = new List<string>();


        foreach (var item in cokvalue)
        {
            view.Add(cokvalue);


        }

        **This one for What ı want to add last visited pages

        HttpCookie cok = new HttpCookie("last viewed");
        cok.Values["last visited"] = string.Join(",", view.ToArray());
        cok.Expires = DateTime.Now.AddMonths(1);
        Response.Cookies.Add(cok);

        HttpCookie mycookie = new HttpCookie("Product");
        mycookie.Values["asd"] = cokvalue;
        mycookie.Expires = DateTime.Now.AddMonths(1);
        Response.Cookies.Add(mycookie);




        var product = gelistirmeEntities.Product.Where(p => p.Product_ID == id).FirstOrDefault();

        return View(product);

    }

1 个答案:

答案 0 :(得分:0)

答案

public ActionResult DetailShow(int id)
{
    string cokvalue = ControllerContext.RouteData.Values["id"].ToString();
    HttpCookie cok = Request.Cookies["last viewed"];
    List<string> cookielist = new List<string>();
    cookielist.Add(cokvalue);


    if (cok == null)
    {
        var serialize = JsonConvert.SerializeObject(cookielist);
        cok = new HttpCookie("last viewed");
        cok.Values["last visited"] = serialize;


    }

    else
    {                
        cookielist.InsertRange(0,JsonConvert.DeserializeObject<List<string>>(cok.Values["last visited"]));                                
        var serialize = JsonConvert.SerializeObject(cookielist);                
        cok.Values["last visited"] = serialize;


    }
    cok.Expires = DateTime.Now.AddMonths(1);
    Response.Cookies.Add(cok);

    HttpCookie mycookie = new HttpCookie("Product");
    mycookie.Values["asd"] = cokvalue;
    mycookie.Expires = DateTime.Now.AddMonths(1);
    Response.Cookies.Add(mycookie);


    var product = gelistirmeEntities.Product.Where(p => p.Product_ID == id).FirstOrDefault();

    return View(product);

}