永发信息网

关于C# 的Response.Write问题

答案:2  悬赏:80  手机版
解决时间 2021-03-06 09:58
(方法1)Response.Write("<script>alert('注册成功,将跳转回商品购买页!');ProInfo.aspx?Pid="+Session["pid"].ToString()+";</script>");
(方法2)//Response.Write("<script>alert('注册成功!');</script>");
//Response.Redirect("ProInfo.aspx?Pid="+Session["pid"].ToString());

为什么我只有按照方法1那样写。才会弹出提示。而以注视掉那两行的形式写。不提示。直接跳转。为什么?我在重定向前向客户端输出JS脚本为什么没有执行。难道是Response.Write 只是把代码写入输出流而不马上执行?- -我只有5分啊
最佳答案
Response.Redirect将向客户端发出一个302请求,表示页面跳转了,而不会把Response.Write输出到客户端

所以如果你想实现弹出提示并跳转页面的功能,只能用js,如:
Response.Write("<script>alert('注册成功,将跳转回商品购买页!');location.href='你要跳转到的地址';</script>");
全部回答
首先你要了解web通信原理。web编程模型是一种无状态的模型,微软在2。0时代封装了web编程模型,使得看起来是有状态的。但是实际上还是无状态的。 response.write(“abc”)这是在从服务器的响应流中写入abc三个字符,发送给客户端。一旦调用这种方法,就意味着在响应流的顶部添加abc三个字符。而且这三个字符没有封装在微软的服务器端控件上(比如,文本框,下拉列表等),因此这些信息是不会保留在viewstate里面回传给服务器,所以第二次点击按钮发送服务器请求时,服务器根本不知道以前写过abc,所以他不会还原上一次的abc,然后在顶部再添加abc。 说的可能很混乱,举个例子: 你给我送豆腐,每天送1斤,按理说我会在收货单子上添加一个记录。于是你可以看到好多个1斤。 但是,很遗憾,你每次都不把收货单子带来,我只能每次给你个新的收货单子,上面写1斤.....
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【英俊男人】怎样形容男人的英俊
成语谜语:长江后浪推前浪(打一成语)的相关
老四烧烤我想知道这个在什么地方
寝室架子床无缘无故摇晃是否有鬼,而且连续一
成都启阳领航汽车销售服务有限公司地址在什么
【十月革命时间】关于俄国二月革命与十月革命
csol如果合区会怎么合
新中国成立后发行的无齿邮票到底有哪些
我想订从惠州到随州的T128列车的车票,如何订
国各庄立交桥/新苑南路(路口)我想知道这个在
去美国旅游买什么保险合适?
求椭圆标准方程,
你在外地工作,但是你叫你老婆过去跟你在一起
电脑处理器怎么换
香蕉和苹果醋加红糖有什么效果
推荐资讯
颐和园和故宫哪个好玩
中年人一般什么时候开始会有老花眼的发生
碧海云天超市在哪里啊,我有事要去这个地方
散户新手如何投资股票
坡腊我想知道这个在什么地方
家里有供奉的出马仙3月15上什么供好
起亚k5早上着车是气门响如何修理
分类作为一种重要的化学思想,在科学研究中占
家长为了防止小明留恋不良网页而禁止其上网,
谁有2005年最新的涉及国家秘密的计算机信息系
龙门花甲(东湖村店)在哪里啊,我有事要去这个
陶朱公庙地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?