我有一个https://stackoverflow.com/questions/19905901/mac-address-equivalent-to-identify-asp-net-websites-visitors来使用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") {
}请注意,警报正确地显示了值。
我在这里错过了什么?
发布于 2013-11-15 11:27:30
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");
}
}
}
}https://stackoverflow.com/questions/19999718
复制相似问题