理解asp.net保存页面状态值的原理

背景:一个页面中有两个控件 lable和提交按钮button   ,点击按钮提交服务端给label赋值为“你好”,再次刷新页面后,label还是“你好”,那么这个值是如何保留在浏览器label的呢?

viewstate,右键浏览器当前页源码,可以看到id="__VIEWSTATE"隐藏html,

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEzMTc4NjY3NThkZL3H3qy5vo1KwtRONCOgyNsPP0L1PHf3haGnMulq6D9F" />

“你好”二字其实是保存在viewstate中来回发传值的。其内容可以通过viewstatedecoder2工具查看。

另外注意IsPostBack是用来判断是否有表单请求或参数传递,而不是简单的理解第一次请求


以下两个隐藏域是用来验证安全的,比如点击按钮,post或get跳转到其他页面,如果有验证的话就会报错

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" />

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAN6bmhGyyFMtTHi1gSQGkxIESCFkFW/RuhzY1oLb/NUVM34O/GfAV4V4n0wgFZHr3e1M2voichPr05zYv/pBZf/2NkZyCdP5HA9Ennyb0APYw==" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值