首页 > 解决方案 > 在 .NET Core MVC 中访问 Cookie 时,它​​的值显示为 null

问题描述

编辑:已解决使用的库:这里是链接:https ://github.com/js-cookie/js-cookie

我的浏览器中有两个 cookie,值为 2 的“cartNumbers”。我可以在 .NET 中访问它们。

但是另一个具有价值的“productsInCart”cookie:

[{"slNo":"8","pName":"RAY BAN","pPrice":"8790.00","pQty":1,"image":"https://localhost:44314/Images/13bacad884054b62a37d6840a95b8bd9.jpg"},{"slNo":"21","pName":"GREY T-SHIRT","pPrice":"555.00","pQty":1,"image":"https://localhost:44314/Images/6d80b0a28b94472b959db3f69c65faba.jpg"}] 

当我尝试访问 productInCart 时,我得到“null”。请帮忙。这就是我访问它们的方式

var ProductInCart = Request.Cookies["productsInCart"];             
var CartNumber = Request.Cookies["cartNumbers"]; 

我已经在 javaScript 中创建了这些 cookie,我正在尝试在 .NET MVC 控制器中访问它们

我的 JavaScript 代码

    function setCookie(name, value, exp_days) {
        let d = new Date();
        d.setTime(d.getTime() + exp_days * 24 * 60 * 60 * 1000); // calling setTime() method
        let expires = "expires=" + d.toGMTString();
        document.cookie = name + "=" + value + ";" + expires + ";path=/";
    }
    
    
    function getCookie(key) {
        let keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
        return keyValue ? keyValue[2] : null;
    }

$("#addtocart").click(function () {
    const product = document.getElementById('product-name').innerText;
    const price = document.getElementById('product-price').innerText;
    const img = document.querySelector('#product-image').src;
    let quantity = parseInt($('#quantity').find(":selected").text());
    let pId = params.get('id');


    let key = "productsInCart";
    if (getCookie(key)) {
        const data = JSON.parse(getCookie(key));

        let curObj = { "slNo": pId, "pName": product, "pPrice": price, "pQty": quantity, "image": img };

        addItemToCart(data, pId, quantity, curObj);

        let value = JSON.stringify(data);
        setCookie(key, value, 90);
    }
    else {
        cartdata.push({ "slNo": pId, "pName": product, "pPrice": price, "pQty": quantity, "image": img });
        let value = JSON.stringify(cartdata);
        setCookie(key, value, 90);
        
    }

    toastr.success('product Sucessfully', 'Added', { timeOut: 2500 });
});

function addItemToCart(data, pId, quantity, curObj) {
    for (let obj of data) {
        if (obj.slNo === pId) {
            obj.pQty = quantity;
            return;
        }
}

数据.push(curObj); }

标签: javascriptc#cookiesasp.net-core-mvc

解决方案


推荐阅读