2011-01-27 30 views
2

私はクッキーに値を保存しようとしているが、保存していない単純なアプリケーションがあります。以下はコードですが、どこに問題があるのか​​わかりません。このコードは、ビューからであるMVC 2 - クッキーが保存されない

public ActionResult Index() 
{ 
    string cookieValue = ""; 

    if (Request.Cookies["my_cookie"] != null) 
    { 
     cookieValue = Request.Cookies["my_cookie"].Value; 
    } 

    if (! string.IsNullOrEmpty(cookieValue)) 
    { 
     ViewData["ck"] = cookieValue; 
    } 
    else { ViewData["ck"] = "no cookie value"; } 

    return View(); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult SaveCookieData(FormCollection formValue) 
{ 
    HttpCookie myCookie = new HttpCookie("my_cookie", formValue["cookieTXT"].ToString()); 

    Response.Cookies.Add(myCookie); 
} 

:以下

コードは、コントローラからのもので、それがどのように見えるから

<% using (Html.BeginForm("SaveCookieData", "Home", FormMethod.Post)) { %> 
<textarea id="cookieTXT" rows="2" cols="20" runat="server" /> 
<input id="submitBTN" type="submit" value="Done" runat="server" /> 
<% } %> 

<% if (ViewData["ck"] != null) { %> 
<p>Hello Cookie: <%= ViewData["ck"]%></p> 
<% } %> 

は私のフォームはcookieTXTのためのデータを提出しているが空であるため、値のためにformValue ["cookieTXT"]は空白です。なぜそれを理解できないのですか?

ありがとうございました。

答えて

3

まず:

Response.SetCookie(myCookie);

セカンドを使用してみてください: は、ブラウザに保存されたクッキーを見てみましたがありますか? Google Chromeを使用して、ブラウザが読み取ったCookieを確認します。また、フィドラーを使用してSet-Cookie:を見て、応答が正しく応答しているかどうかを確認することもできます。また、クッキーを設定するドメインが、クッキーを読み取っているドメインと一致していることを確認してください。

Ex。ドメイン= domain.com

あなたのサイトは、クッキーを読むためにURLにdomain.comを持っている必要があります。

+0

ありがとうございます。私はC#の新機能で、ここからの助けは素晴らしいです。 =) –

+0

確かに、私は笑の前日にこの問題にぶつかった! – MattPII

関連する問題