【问题标题】:Get EverCookie value from ASP.NET Codebehind从 ASP.NET Codebehind 获取 EverCookie 值
【发布时间】:2013-11-19 17:44:05
【问题描述】:

我有一个Reason 来使用 Evercookie,它在 HTML 页面中运行良好,但在回发后我无法从代码隐藏中获取它的值。

我通过使用隐藏字段找到了一种解决方法,但是它在回发后总是失去其价值:

<input type="hidden" id="hfimageurl" name="hfimageurl" value="" />
<script>
    var ec2 = new evercookie();
    document.getElementById('hfimageurl').value = "User";
    ec2.get("id", function (value) { if (value == '10') {   
      document.getElementById('hfimageurl').value = "BadUser"; } 
    });

    ec2.get("id", function (value) { alert(value); });
</script> 

在回发后的代码隐藏中,我总是得到val = '':

string val = Request.Form("hfimageurl");

if (val != "BadRequest") {
}

请注意,警报显示的值正确。

我在这里错过了什么?

【问题讨论】:

  • 非常感谢任何其他获得代码价值的建议。

标签: c# javascript asp.net cookies evercookie


【解决方案1】:
Add runat server to you input
<input type="hidden" id="hfimageurl" name="hfimageurl" value="" runat="server" />

并在页面加载事件中重新分配隐藏字段值,这样下次回发就不会丢失

protected void Page_Load(object sender, eventargs e)
{   
   if(Request.Form("hfimageurl") != null)
   {

      if(hfimageurl.Value == "")
      {
      hfimageurl.Value=Request.Form("hfimageurl");
      }
      else
      {
        //Check if there is a new value, if is, change the value to new one
        //Otherwise the value should be saved with postback, but it may be lost

        if(!hfimageurl.Value.Equals(Request.Form("hfimageurl"))
        {
           hfimageurl.Value=Request.Form("hfimageurl");
        }
      }

   }

}

【讨论】:

  • 它工作正常,但有时它不是......我仍然不知道它背后的秘密。
  • 我更改了代码,因此如果 Request.Form("hfimageurl") 为空,它不会用空值覆盖 hfimageurl.Value 并检查值是否相同,它不会改变任何东西
猜你喜欢
  • 2012-09-12
  • 2018-06-01
  • 1970-01-01
  • 2012-05-02
  • 2015-05-10
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多