c# response.write 的问题
我用按钮单击触发“response.write(“abc”);”,不管我怎么单击按钮,页面只显示一个abc,这是为何?我单击5次,只显示一个abc,但我需要的是显示5个a...
我用按钮单击触发“response.write(“abc”);”,不管我怎么单击按钮,页面只显示一个abc,这是为何?
我单击5次,只显示一个abc,但我需要的是显示5个abc。 展开
我单击5次,只显示一个abc,但我需要的是显示5个abc。 展开
展开全部
首先你要了解Web通信原理。WEB编程模型是一种无状态的模型,微软在2。0时代封装了Web编程模型,使得看起来是有状态的。但是实际上还是无状态的。
Response.Write(“abc”)这是在从服务器的响应流中写入abc三个字符,发送给客户端。一旦调用这种方法,就意味着在响应流的顶部添加abc三个字符。而且这三个字符没有封装在微软的服务器端控件上(比如,文本框,下拉列表等),因此这些信息是不会保留在ViewState里面回传给服务器,所以第二次点击按钮发送服务器请求时,服务器根本不知道以前写过abc,所以他不会还原上一次的abc,然后在顶部再添加abc。
说的可能很混乱,举个例子:
你给我送豆腐,每天送1斤,按理说我会在收货单子上添加一个记录。于是你可以看到好多个1斤。
但是,很遗憾,你每次都不把收货单子带来,我只能每次给你个新的收货单子,上面写1斤.....
Response.Write(“abc”)这是在从服务器的响应流中写入abc三个字符,发送给客户端。一旦调用这种方法,就意味着在响应流的顶部添加abc三个字符。而且这三个字符没有封装在微软的服务器端控件上(比如,文本框,下拉列表等),因此这些信息是不会保留在ViewState里面回传给服务器,所以第二次点击按钮发送服务器请求时,服务器根本不知道以前写过abc,所以他不会还原上一次的abc,然后在顶部再添加abc。
说的可能很混乱,举个例子:
你给我送豆腐,每天送1斤,按理说我会在收货单子上添加一个记录。于是你可以看到好多个1斤。
但是,很遗憾,你每次都不把收货单子带来,我只能每次给你个新的收货单子,上面写1斤.....
展开全部
你只在页面谢了abc,当然只有abc了,你想要什么结果?
追问
一般来说,不是只要触发单击,就会不断的执行response.write这个语句吗?现在我就是奇怪,为什么我单击了5次,页面上还是只显示一个abc,而不是5个abc。
追答
因为Response.Write方法只是在服务器返回的文件流中临时增加一段文本的输出,也就是说你增加的"abc"只存在于客户端,而没有保存在服务端。所以当你下一次单击按钮的时候,上一次的"abc"本来就不存在,所以你在客户端永远只能看到一个"abc"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询