0
if (HttpContext.Request.Cookies["time"]==null)
{
    HttpCookie cookie = new HttpCookie("last_visited",DateTime.Now.ToString());
    cookie.Expires = DateTime.Now.AddDays(10);
    HttpContext.Response.Cookies.Add(cookie);
}
else if(HttpContext.Request.Cookies["last_visited"]!=null)
{
    ViewBag.last_visited = HttpContext.Request.Cookies["last_visited"].Value;
}

asp.netmvcにCookieを設定しようとしています。上記は、コントローラーアクションの私のコードです。このコードの目的は、Cookieがない場合はCookieを設定し、Cookieが設定されている場合は値を読み取ることです。

ただし、ブレークポイントを設定した後、Cookieがまったく設定されていないかのように、パーツが実行されない場合は、elseを発見しました。

ここで何が問題になっていますか?

4

1 に答える 1

2

最初のifステートメントが間違ったCookieをチェックしているということですか?代わりにすべき"time"ですか?"last_visited"

修正されたコード:

if (HttpContext.Request.Cookies["last_visited"]==null)
{
    HttpCookie cookie = new HttpCookie("last_visited",DateTime.Now.ToString());
    cookie.Expires = DateTime.Now.AddDays(10);
    HttpContext.Response.Cookies.Add(cookie);
}
else if(HttpContext.Request.Cookies["last_visited"]!=null)
{
    ViewBag.last_visited = HttpContext.Request.Cookies["last_visited"].Value;
}
于 2013-03-25T17:33:59.160 に答える