(方法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分啊
关于C# 的Response.Write问题
答案:2 悬赏:80 手机版
解决时间 2021-03-06 09:58
- 提问者网友:鼻尖触碰
- 2021-03-05 09:00
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-03-05 10:09
Response.Redirect将向客户端发出一个302请求,表示页面跳转了,而不会把Response.Write输出到客户端
所以如果你想实现弹出提示并跳转页面的功能,只能用js,如:
Response.Write("<script>alert('注册成功,将跳转回商品购买页!');location.href='你要跳转到的地址';</script>");
所以如果你想实现弹出提示并跳转页面的功能,只能用js,如:
Response.Write("<script>alert('注册成功,将跳转回商品购买页!');location.href='你要跳转到的地址';</script>");
全部回答
- 1楼网友:孤独的牧羊人
- 2021-03-05 10:53
首先你要了解web通信原理。web编程模型是一种无状态的模型,微软在2。0时代封装了web编程模型,使得看起来是有状态的。但是实际上还是无状态的。
response.write(“abc”)这是在从服务器的响应流中写入abc三个字符,发送给客户端。一旦调用这种方法,就意味着在响应流的顶部添加abc三个字符。而且这三个字符没有封装在微软的服务器端控件上(比如,文本框,下拉列表等),因此这些信息是不会保留在viewstate里面回传给服务器,所以第二次点击按钮发送服务器请求时,服务器根本不知道以前写过abc,所以他不会还原上一次的abc,然后在顶部再添加abc。
说的可能很混乱,举个例子:
你给我送豆腐,每天送1斤,按理说我会在收货单子上添加一个记录。于是你可以看到好多个1斤。
但是,很遗憾,你每次都不把收货单子带来,我只能每次给你个新的收货单子,上面写1斤.....
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯