|
主题: Trace="True"引发的一场问题!!!斑竹进!!!
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#12006/3/28 15:28:34
我先说明一下我的代码,如下: <a href=# runat="Server" onclick="javascript:window.open('ShoppingCart.aspx?AddToCart=10000000003','ShoppingCart');return false;">放入购物车</a> 我单击"放入购物车"后,打开"ShoppingCart.aspx", ShoppingCart.aspx为<%@ Page language="c#" Codebehind="ShoppingCart.aspx.cs" AutoEventWireup="false" Inherits="GW.Web.ShoppingCartPage" Trace="True" %> ShoppingCart.aspx.cs的代码为 private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { LoadData(); } ...... } 其中 private void LoadData() { CartManager shoppingCart = new CartManager(); if ( (Request["AddToCart"] != null) && (Request["AddToCart"] != "")) { shoppingCart.AddItem( Request["AddToCart"] ); Response.Redirect("ShoppingCart.aspx"); } ...... } 下面说明一下在Trace="True"和Trace="False"的区别: Trace="True" 程序走到"Response.Redirect("ShoppingCart.aspx");"后,会再次调用"void Page_Load()", 然后在打开ShoppingCart.aspx
Trace="False" 程序走到"Response.Redirect("ShoppingCart.aspx");"后,就直接打开了ShoppingCart.aspx
我想问下,这个是为什么啊,先谢谢兄弟们了!
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#22006/3/28 16:37:53
设置为true,可以在页面输出跟踪调试信息 Trace.Write可以输出有用的测试信息
非常大鱼
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#32006/3/28 17:20:07
这个我知道啊, 但是web.config设置为 <trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /> 同时设置ShoppingCart.aspx的trace为true的话,为什么在其他的机子上也能看到trace的信息啊? localOnly="true"不是只有本机才能看到吗? 另外,我设置为false的话,购物车必须刷新一下,才能显示以前添加到购物车的物品! true和false, 影响了ShoppingCart.aspx.cs的代码的流程了 这个是为什么啊?
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#42006/3/28 17:21:20
刚才忘了说了,设置为true的话,购物车的显示就是正常的,不用刷新就可以显示以前添加到购物车里的物品!
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#52006/3/29 1:56:25
我只想说,编程是实践性的活,很多事我都不想问为什么。 怎样实现就怎么着吧。 人可以编出很优秀的东西,可以制造出许多莫明其妙的事来,这就是人,哈哈 看着办吧,你实践的就是正确的
非常大鱼
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#62006/3/29 10:28:28
蓝鲸大哥,我想找到解决问题的方法啊, 问题就是: Trace="True" 程序走到"Response.Redirect("ShoppingCart.aspx");"后,会再次调用"void Page_Load()", 然后在打开ShoppingCart.aspx
Trace="False" 程序走到"Response.Redirect("ShoppingCart.aspx");"后,就直接打开了ShoppingCart.aspx 我想让怎么就能在Trace="False"的情况下, 程序走到"Response.Redirect("ShoppingCart.aspx");"后,和Trace="True"一样 再次调用"void Page_Load()",然后在打开ShoppingCart.aspx
而不是直接打开ShoppingCart.aspx
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#72006/3/29 11:07:54
Trace = 'True'是为了调试用的,一般还是放在web.config上比较方便,这样可以很方便关闭。完成后,应设置为flase
你上述方法好象没什么必要,程序测试正常后就关闭,或者全部打开就行。
不过一定要这样,试试用Server.Transfer看看,我没试过
非常大鱼
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#82006/3/29 13:12:40
用了Server.Transfer不行, 程序的代码是: if ( (Request["AddToCart"] != null) && (Request["AddToCart"] != "" ) { shoppingCart.AddItem( Request["AddToCart"] ); //Response.Redirect("ShoppingCart.aspx" ; Server.Transfer("ShoppingCart.aspx" ; } 用Server.Transfer是不是会把Request信息保留啊? Server.Transfer是什么作用啊? 查了下msdn,没有看明白! 我是在修改一个程序 它以前在页面上有Trace="True" 我去掉,或者改为Trace="False"后,购物车就不能正常的显示了,就出现了我上面所说的问题. 能不能帮我看看,这个是什么原因啊?实在是想不通!HOHO
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#92006/3/29 13:15:43
用了Server.Transfer是报以下的错误 "JIT调试失败,出现以下错误:拒绝访问."
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#102006/3/29 13:20:42
你是用DropdownList控件吧,我用这个控件也很纳闷,可能会有传值失败的问题。 不过用Transfer没试过,在用js操作后就失败了。如果这样,可以把该值放在TextBox隐藏控件中,就能传值。 Server.Transfer有参数,可以在页切换后,保持url不变 另外在各控件的值均可以传递过去。
编辑历史:[此帖最近一次被 蓝鲸 编辑过(编辑时间:2006-03-29 13:26:38)]
非常大鱼
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#112006/3/29 14:39:35
我没有用DropdownList,只是在前一个页面的控件上用到了DropdownList; 另外我这个问题有没有解决的方法啊,我都快晕死了,HOHO! 是不是Trace="True"在页面输出的时候,又刷新了一次页面?
还有个问题就是: 在Trace="False"的情况下, ShoppingCart.aspx.cs中的代码运行到"Response.Redirect("ShoppingCart.aspx");" 不管怎么样也应该再次调用"void Page_Load()"吧,这里也搞不懂是为什么 ??
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#122006/3/29 14:52:09
呵呵,是用到了一个DropdownList,难道是这个东东给影响了? 但是我上面的回复说的问题, 还是想不明白啊!
|
Steveson
职务:普通成员
等级:1
金币:0.0
发贴:68
|
#132006/3/30 14:02:28
怎么没有人理我了
|