我正在try 开发一款带有剃刀页面的应用程序.出于这个原因,虽然我可以在我的主页上查看添加到购物车中的产品ID和数量,并将其放置在/Cart页面上开发人员工具的Application/Cookies选项卡中的Cookie中,但我不能使用C#代码访问它们.我给出了主页和/Cart页的曲奇图片.

enter image description here

Note::app.UseCookiePolicy();Program.cs有空位.

创建Cookie的脚本:

function addToCart(productId) {
    var cart = getCart();
    var existingProduct = cart.find(item => item.productId === productId);
    if (existingProduct) {
        existingProduct.count += 1;
    } else {
        cart.push({ productId: productId, count: 1 });
    }
    setCart(cart);
    alert('Ürün sepete eklendi!');
}

function getCart() {
    var cart = getCookie('cart');
    if (!cart) {
        cart = [];
    } else {
        try {
            cart = JSON.parse(cart);
        } catch (error) {
            cart = [];
        }
    }
    return cart;
}

function setCart(cart) {
    setCookie('cart', JSON.stringify(cart), 7);
}

function getCookie(name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length === 2) return parts.pop().split(";")[0];
}

function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    var newCookie = name + "=" + (value || "") + expires + "; path=/";
    console.log(newCookie);
    document.cookie = newCookie;
}

C#代码我正在try 访问cookie:

public List<CartItem> CartItems { get; set; }

public void OnGet()
{
    CartItems = GetCartItems();
}

private List<CartItem> GetCartItems()
{
    var cartCookie = Request.Cookies["cart"];
    Console.WriteLine($"cartCookie: {cartCookie}");

    if (!string.IsNullOrEmpty(cartCookie))
    {
        try
        {
            return JsonConvert.DeserializeObject<List<CartItem>>(cartCookie);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error parsing cart cookie: {ex.Message}");
        }
    }

    return new List<CartItem>();
}

在这里,我得到一个空输出,该行的输出为cartCookie: .

我想做的是转移到一个简单的Electron 商务网站的产品添加到购物车与cookie的产品,其中不需要用户登录.但是,在执行此操作时,我无法访问C#端的Cookie.

推荐答案

我们可以从标题中获取Cookie,请try :

//var Cookie1 = Request.Headers.Cookie;//get the cookie
var Cookie = Request.Headers.Cookie.ToString();
var cartCookie = Cookie.Split('=').Last(); //get cartCookie value 

结果:

enter image description here

Csharp相关问答推荐

Rx.Net -当关闭序列被触发时如何聚合消息并发出中间输出?

MongoDB实体框架核心:表达必须可写

以自动方式注销Azure身份应用程序

处理. netstandard2.0项目中HttpClient.SslProtocol的PlatformNotSupportedException问题""

一小时后,自定义缓存停止在App Insight中保存

EF Core在请求列表时忽略列,但在按ID获取时包含

将XPS转换为PDF C#

REST API端点中异步后台代码执行的类型

WPF DataGrid中的三维数据

最新的Mediatr和具有同步方法的处理程序Handle:并非所有代码路径都返回值"

如何在毛伊岛应用程序中完美地同步视图模型和视图的加载?

使用Dapper映射联接查询对象数据到使用SplitOn;

有空容错运算符的对立面吗?

DateTime ToString()未以指定格式打印

C#自定义验证属性未触发IsValid方法

Visual Studio 17.8.0制表符自动完成问题--三缩进

C#定时器回调对象上下文?

C#;AvaloniaUI;MVVM;当另一个窗口上的按钮被单击时,如何更新视图图像源?

使用SQL Server 2022+时,我是否必须将代码从SqlConnection类对象中迁移出来?

ASP.NET Core 7空字符串