如何在cookie中写入和读取bool值?

时间:2013-05-27 01:59:52

标签: html asp.net cookies razor html-form

我想在提交给Cookie时以html格式保存复选框的状态,然后根据这些Cookie值启用/禁用我网站的其他部分。

我开始使用这样的代码:

HTML:

<form method="POST">
    <fieldset>
        <legend>(Not really) Opt In or Out</legend>
        <input type="checkbox" id="selectTwitter" name="selectTwitter" >I'm Twitterpated!</input><br />

。 。 。              

剃刀:

@ {     var twitterSelected = false;     。 。

if (IsPost)
{
    twitterSelected = Request["selectTwitter"].AsBool();
    Response.Cookies["TwitterSelected"].Value = twitterSelected.ToString(); // Doesn't seem to accept saving boolean vals - saved as "false" or "true"?
    Response.Cookies["TwitterSelected"].Expires = DateTime.Now.AddYears(1);
. . .

...但我仍然坚持如何根据可能存在的cookie值检查或取消选中复选框:

if (Request.Cookies["selectTwitter"] != null)
{
    // what now?
}

1 个答案:

答案 0 :(得分:3)

Cookie是字符串。您需要将cookie值转换为您想要的类型。布尔值保存为truefalse,因为这是布尔值的字符串表示形式。

var selectTwitterCookie = Request.Cookies["selectTwitter"];
bool selectTwitter = false;

if(selectTwitterCookie != null)
{
    bool.TryParse(selectTwitterCookie, out selectTwitter);
}

或者,您可以使用Convert.ToBoolean(selectTwitterCookie)