2011-01-27 85 views
2

我有一個簡單的應用程序,我試圖將一個值保存到我的cookie中,但沒有保存。下面是代碼,我不知道問題出在哪裏。下面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);

二: 您是否嘗試過尋找保存在瀏覽器cookie的?我使用Google Chrome查看瀏覽器正在讀取的Cookie。您也可以使用fiddler來查看Set-Cookie:在響應中查看它是否正確響應。另外,確保設置cookie的域與正在讀取cookie的域匹配。

Ex。 Domain = domain.com

您的網站必須在網址中有domain.com才能讀取cookie。

+0

謝謝。我是C#的新手,從這裏獲得的幫助非常棒。 =) – 2011-01-29 18:59:19