Asp.net中PostBack机制解决了什么问题,其核心技术是什么

sohighthesky 2009-05-07 08:05:27
rt;
大虾们帮忙看看
...全文
1395 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
erif1001 2009-05-10
  • 打赏
  • 举报
回复
学习
wyman25 2009-05-09
  • 打赏
  • 举报
回复
虽然看上去是方便,但有时挺讨厌的。
皓月明 2009-05-09
  • 打赏
  • 举报
回复
顶了
tianyewj 2009-05-09
  • 打赏
  • 举报
回复
不是很明白,好像是回传数据。

但是似乎是第二次回传不再刷新页面吧!
End 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happywind99 的回复:]
Asp.net中PostBack机制简单地说就是解决HTTP协议的无状态问题,自动回发提交的数据
[/Quote]
UP
xuan.ye 2009-05-09
  • 打赏
  • 举报
回复
未来几年, flash silverlight 应该会领导下潮流的
sohighthesky 2009-05-09
  • 打赏
  • 举报
回复
非常感谢各位了
zuoming120 2009-05-08
  • 打赏
  • 举报
回复
是回传,就是去一次服务器,有没有取数据
tsp860901 2009-05-08
  • 打赏
  • 举报
回复
判断你是不是 第一次加载页面
sujunjun 2009-05-08
  • 打赏
  • 举报
回复
頂一下!就是回發而已,有時程序越想越亂。
  • 打赏
  • 举报
回复
[Quote=引用楼主 sohighthesky 的帖子:]
rt;
大虾们帮忙看看
[/Quote]

大致可以:

1. 实现了跟WinForm类似的事件驱动编程机制。你现在可以把代码放在各种控件的各个适当的事件处理过程中,MVP编程。微软自从1992、1993年之后就深入程序员心目中了,大大提高了使用微软开发平台的程序员的生产效率。当然,由于.net门槛实在太低,也有一些从外行开发平台临时转过来的asp.net开发人员明明放着事件编程不用而硬要把代码全都挤进Page的Load事件中,写出奇形怪状流程诡异别扭的程序。

2. 实现了每一个控件中少则三五个多则上千个状态的自动化维系。


这些都是降低web开发人员开发出好的交互式应用程序(而不是仅仅搞点漂亮的图片和样式)的技术门槛。

不过asp.net太慢、用户体验不好。我建议学习微软的web应用开发者使用Silverlight2.0(或者3.0Beta)开发技术来实现页面上的内容展现,asp.net只是做点简单的(原来功能的不足5%的)工作就可以了。
陌上花花 2009-05-08
  • 打赏
  • 举报
回复
友情帮顶,
知道是回发,细节的东东还真没整明白。
Lxpd 2009-05-08
  • 打赏
  • 举报
回复
记录页面状态。PostBack后把信息发回服务器,服务器再返回时又把信息带回来,所以方便多多,

可以想想以前的asp想要实现状态保存就得自已写成串发回去,处理时再把串添上,
现在.net替你完成了
  • 打赏
  • 举报
回复
学习中...
kfps8kfps8 2009-05-08
  • 打赏
  • 举报
回复
看看
benwugao 2009-05-08
  • 打赏
  • 举报
回复
试了jingshuaizh(大力水手)所说的,是这样的,在浏览器里查看源代码还有几个

<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTYxMTc1NjI2MA9kFgICAw9kFgICAQ8QDxYGHg1EYXRhVGV4dEZpZWxkBQNrZXkeDkRhdGFWYWx1ZUZpZWxkBQV2YWx1ZR4LXyFEYXRhQm91bmRnZBAVAgnpq5jkuJbnlYwJ5p2o5Yeh6Zm2FQIIVGhlIEdvb2QIVGhlIEppYW4UKwMCZ2cWAWZkZNz93SlDMn/uF89Smnw9Wgs8iGNe" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAK67LnzBgKd5I/lCgK8v/GmAwL97JzvBJIDNJXIU45ETB2PBkQSZS7LAQq0" />

不知道是用来做什么的了。请指教。
pdsnet 2009-05-08
  • 打赏
  • 举报
回复
学习 经常用.从来不知道具体是怎么回事
wuyq11 2009-05-07
  • 打赏
  • 举报
回复
页面回传数据
参考
参考
happywind99 2009-05-07
  • 打赏
  • 举报
回复
Asp.net中PostBack机制简单地说就是解决HTTP协议的无状态问题,自动回发提交的数据
蓝海D鱼 2009-05-07
  • 打赏
  • 举报
回复
http://www.cnblogs.com/KenBlove/archive/2008/11/06/1328238.html

再认识asp.net的postback机制:探索__doPostBack的来龙去脉
__doPostBack作为在asp.net中一个很重要的部分,有必要深入了解一下__doPostBack的来龙去脉的.其实,__doPostBack是一个很简单的JS function.代码如下:



__doPostBack<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />function __doPostBack(eventTarget, eventArgument) {if (!theForm.onsubmit || (theForm.onsubmit() != false)) {theForm.__EVENTTARGET.value = eventTarget;theForm.__EVENTARGUMENT.value = eventArgument;theForm.submit();}}


因为最终呈现给浏览器的内容都是html内容,采用asp.net技术也不能例外.要实现webcontrol的postback机制.只能在原来的submit上做文章.ms呈现给我们的,就是这种精巧的思维!

我看到,asp.net现在页面上添加了两个hidden input,这两个input分别用来存放触发postback的control的ID和参数.这就是我们大部分人认识到的:

__doPostBack(obj1,obj2)的第一个参数是控件ID,第二个参数是postback的参数.然后就可以在后台用Request.Form["__EVENTTARGET"]和Request.Form["__EVENTARGUMENT"]取得控件ID和参数.

很简单就实现了看似很神奇,以为内部有什么高深的处理的过程!如此轻巧的实现了asp.net的postback机制,佩服佩服!只要我们看懂了上边的代码,对__doPostBack的使用就应该不是什么难事了.可以说__doPostBack就是这么简单的一回事.-_-||

不过,另外要注意的就是asp.net的webcontrols中,Button和ImgButton是异类,它们不是利用__doPostBack来实现postback的.为什么这样,可能因为Button在html中本来就是有触发submit事件的功能吧.asp.net不过是要令原来html中一些不能触发submit的东西submit,才弄出了__doPostBack来实现.对于原来就能submit的Button,又何必多此一举呢.(仅个人理解,未经验证!)

所以如果是Button的postback,在后台是不能用Request.Form["__EVENTTARGET"]和Request.Form["__EVENTARGUMENT"]取得控件ID和参数的.那么,怎么取呢?看代码:



取Button
foreach (string str in Request.Form){ Control c = Page.FindControl(str); if (c is Button) { control = c; break; }}


如上写法可以在后台找到Button.为什么这样? 不知道,呵呵. 在Button的提交过程中,Button会将Button本身的ID作为Request.Form的一个Key,它的Value是Button的Text属性值,回传给服务器.所以可以在后台循环Form.Keys取到所提交的Button,以执行相应的函数.ImgButton也差不多,不同就在于,它不是用ImageButton的ID作为Request.Form的Key,它是用ImageButton的ID加上.x和.y作为Key,在Request.Form添加两上键值对,这两个键值应该是对应ImageButton的图片大小的,了解了这个规律后,我们仍然可以通过一定的方式得到是否是由ImageButton引发的PostBack.

了解Postback机制对我们理解asp.net的事件触发过程有很大的帮助,好好利用__doPostBack更能灵活的使客户端和服务器端进行交互,获得更好的客户体验.

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧