Jag håller på med det hopplösa (det bara krabba) ämnet cookies. Ifall du tittar efter noga i felmeddelandet så ser du att det inte alls är Cookes som inte finns, utan Response. <b>Du kan skicka med referensen till metoden, eller använda HttpContext.Current.Request.</b> Skicka med referensen till Page-objektet till metoden: Då ser det ut så här nu.Response.Cookies i egen class-fil
Eftersom jag behöver skriva cookies på flera sidor, så ville jag lägga det i en class.fil. (obs jag proggar i C#)
<b>Problem 1</b>
<code>
public static string writeCoockies(string huvudnyckel, string nyckel, string värde, int tid)
{
string ok = "";
HttpCookie myCookie = new HttpCookie(huvudnyckel);
myCookie.Values.Add(nyckel, värde);
Response.Cookies.Add(myCookie);'Här får jag error
myCookie.Expires = DateTime.Now.AddDays(tid);
return ok;
}
</code>
Jag får ett error på "Response.Cookies", likväl så har jag likadana usings som i min "normala" aspx-fil.
Förslag.???
<b>Problem 2</b>
Jag lägger in en cookies i classen ovan med:
<code>
Response.Write(writeCoockies("saw", "sVote","Japp", 1));
</code>
Det ser lustigt ut, men eftersom jag inte kunde lägga in detta i en classfil, så la jag det i aspx-filen,
och jag kan inte få det att fungera utan att skriva Response.Write.
När jag försöker med:
<code>
HttpCookie cookie = Request.Cookies.Get("saw");
if(cookie.Values["sVote"]!=null)
Response.Write(cookie.Values["sVote"].ToString());
</code>
..då finns ingen cookies.
Jag har lagt upp det som så, har man röstat, så skall radioknapparna bli desablar.
Jag kollar det så här:
<code>
HttpCookie cookie = Request.Cookies.Get("saw");
if (cookie.Values["sVote"] != null)
sdisabled = true;
else
sdisabled = false;
Voteja.Enabled = sdisabled;
Votenej.Enabled = sdisabled;
Votevetinte.Enabled = sdisabled;
</code>
Enligt mig, så kollar jag ju om cookisen sVote inte är null osv ni förstår.
Radioknapparna är disablade hela tiden.
Vad göra???Sv: Response.Cookies i egen class-fil
Response är en egenskap i klassen Page, vilken du inte når utanför sidans klass ifall du inte använder en referens till det aktuella Page-objektet.
Du kan skicka med referensen till metoden, eller använda HttpContext.Current.Request.Sv:Response.Cookies i egen class-fil
Tack för svaret Göran, men jag är osäker på hur du menar.Sv: Response.Cookies i egen class-fil
... Metoden(Page page, ...)
och använd den:
page.Request.Cookies...
Eller använd HttpContext.Current.Request:
HttpContext.Current.Request.Cookies...Sv:Response.Cookies i egen class-fil
<code>
public static string writeCoockies(Page page,string huvudnyckel, string nyckel, string värde, int tid)
{
string ok = "";
HttpCookie myCookie = new HttpCookie(huvudnyckel);
myCookie.Values.Add(nyckel, värde);
page.Response.Cookies.Add(myCookie);
myCookie.Expires = DateTime.Now.AddDays(tid);
return ok;
}
'och anropas med
Webbutill.writeCoockies(Page, "saw", "sVoted", DateTime.Now.ToString(), 1);
</code>
Sen vill jag naturligtvis kolla att cookisen verkeligen kom in..
<code>
if (Request.Cookies["saw"]["sVoted"] != null)
Response.Write Request.Cookies["saw"]["sVoted"].ToString());
</code>
... och otroligt men sant, det verkar som om detta har löst sig.
Tack för all hjälp.