2013-11-15 30 views
0

我有一個Reason使用Evercookie,它在HTML頁面中工作正常,但我無法從回調後的代碼隱藏中獲取它的值。從ASP.NET Codebehind獲取EverCookie值

我已經使用隱藏字段中找到一個解決辦法但它總是回傳後會失去它的價值:

<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") { 
} 

請注意,警報正確顯示值。

我在這裏錯過什麼?

+0

任何其他建議得到背後是極大的讚賞在代碼中的值。 – Alaa

回答

0
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"); 
     } 
     } 

    } 

} 
+0

不是100%確定它會工作。 –

+0

它的工作,但有時它不是..我仍然不知道它背後的祕密。 – Alaa

+0

我改變了代碼,所以如果Request.Form(「hfimageurl」)爲空,並且檢查值是否相同,它不會改變任何東西,所以它不會覆蓋具有空值的hfimageurl.Value –