所以cookie工作但CartID在生成GuID时始终保存为null ...可能我应该添加或更改第3行中的内容。我堆叠请帮助。这是代码:
public string GetCartId(HttpContextBase context )
{
if (context.Request.Cookies["CartId"] == null) return "0";
string CartId = context.Request.Cookies["CartId"].Value;
{
if (context.Request.Cookies["CartId"] == null)
{
CartId = Guid.NewGuid().ToString();
HttpCookie cookie = new HttpCookie("CartId", CartId);
cookie.Expires = DateTime.Now.AddDays(1);
context.Response.Cookies.Add(cookie);
return CartId.ToString();
}
else
{
return context.Request.Cookies["CartId"].Value;
}
}
答案 0 :(得分:1)
有一些奇怪的逻辑在继续。您的第二个if-statement
正在执行与第一个相同的检查。但是在第一次你已经返回时,所以代码永远不会出现在第二个。
我重写了你的代码以遵循这个逻辑:
在代码中:
public string GetCartId(HttpContextBase context )
{
string cartId;
if (context.Request.Cookies["CartId"] == null)
{
cartId = Guid.NewGuid().ToString();
HttpCookie cookie = new HttpCookie("CartId", cartId);
cookie.Expires = DateTime.Now.AddDays(1);
context.Response.Cookies.Add(cookie);
}
else
{
cartId = context.Request.Cookies["CartId"].Value;
}
return cartId;
}
答案 1 :(得分:0)
HttpCookie c = request.cookies["getcookie"];
If (c == null)
{
c = New httpcookie("getcookie");
Guid g= guid.newguid().tostring();
c.value=g;
Response.cookies.add(c);
Return c.value;
}
else
{
return c.value;
}
希望这是您想要的代码,请忽略我从移动设备输入的区分大小写的原因。 谢谢。