ASP.NET(C#) 使用Server.Execute()后不能跳转页面

有一个登陆页面login.aspx,一个主页面main.aspx
为了防止用户直接键入main.aspx,加入了一个judge.aspx进行页面判断!

login.aspx:
在登录按钮单击事件里:
Session["enter"] = "Student";
Server.Transfer("main.aspx");

judge.aspx:
protected void Page_Load(object sender, EventArgs e)
{
//如果是用户直接键入,返回登陆页面
if ((String)Session["enter"] != "Student")
{
Server.Transfer("login.aspx");
}
}

main.aspx:
protected void Page_Load(object sender, EventArgs e)
{

if (!this.IsPostBack)
{
Server.Execute("judge.aspx",false);先执行judge.aspx进行判断
}

}

//超链接按钮单击事件
protected void LinkButton1_Click(object sender, EventArgs e)
{
Server.Transfer("login.aspx");
}

问题:
正常登陆后跳转到main.aspx后,超连接按钮不起作用了,原因是一开始执行了Server.Execute("judge.aspx",false);
怎么解决?

用其他的跳转方式可以就吗!c#.net网页跳转七种方法 1.Response.Redirect(" http://www.bcbbs.net",false);
目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。
跳转向新的页面,原窗口被代替。"
浏览器中的URL为新路径。
:Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了
状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。这就是说,
使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,
得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。
2.Server.Transfer("Default2.aspx?name=zhangsan",true);
目标页面和原页面可以在同一个服务器上。
跳转向新的页面,原窗口被代替。
波球论坛 浏览器中的URL为原路径不变。
默认情况下,Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成
Tb310True,就可以保留第一个页面的表单数据和查询字符串。
同时,使用Server.Transfer时应注意一点:目标页面将使用原始页面创建的应答流,这导致ASP.NET的机器验证检查b310,,博球,博球网,行家心水,赛事推荐,赛事分析,资料库,足球赛事,篮球,NBA,赔率,比分,篮球数据,足球数据. n) U7 P/ J2 m- ?% r
(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据和查询字符串集合,
必须把目标页面Page指令的EnableViewStateMac属性设置成False。 3.Server.Execute("Default5.aspx?address=beijing);
目标页面和原页面可以在同一个服务器上。
跳转向新的页面,再跳转会原页面。
浏览器中的URL为原路径不变。
当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
这种页面导航方式类似于针对ASPX页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把( |1 C# m; J% V
被调用页面Page指令的EnableViewStateMac属性设置成False。 4.Response.Write("<script language='javascript'>window.open('aaa.aspx');</script>");_
目标页面和原页面可以在2个服务器上,可输入网址或相对路径。
原窗口保留,另外新增一个新页面。
5.Response.Write("<script language='javascript'>window.location='Default2.aspx'</script>");b310波球论坛$ r/ v9 t; x6 H4 A" O3 J- n* ?: D& e
打开新的页面,原窗口被代替。
6.Response.Write("<script>window.showModalDialog('Default2.aspx')</script>");
7.Response.Write("<script>window.showModelessDialog('Default2.aspx')</script>");
(一)、showModalDialog和showModelessDialog有什么不同?
 showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。b310,,博球,博球网,行家心水,赛事推荐,赛事分析,资料库,足球赛事,篮球,NBA,赔率,比分,篮球数据,足球数据1 x/ b# F9 ]; u2 Z, ~
  showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P) (二)、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
 在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-08
其实逻辑不用这么复杂 跳转页面传值 直接用url传值 然后呢 在main页面 在pagelode里获取 如果获取不到直接跳转到login页面 或者提示页面 让他去登陆 在一个网站中如果很多页面要用到用户名 而且这个网站还是个大网站 用户很多 是不会用session的 这样很耗服务器内存 影响网页打开性能 一般用url传值 一般的逻辑 是正确判断用户在数据库存在后 直接跳转页面 顺便传过去所需要的值 注意不能传密码等敏感信息 然后呢 会根据相应的用户名加载相应的模块 就比如登陆QQ空间;本回答被网友采纳
第2个回答  2013-08-08
为什么在做一个judge.aspx?完全没有必要啊,在main.aspx里面直接判断不就OK了?main.aspx:
protected void Page_Load(object sender, EventArgs e)
{
if ((String)Session["enter"] != "Student")
{
Response.Redirect("login.aspx");
}
} 如果你非要用你这个方法,你可以用Response.Redirect的跳转,把main.aspx里的判断不要放在IsPostBack里,我相信就可以了。
第3个回答  2013-08-08
在main.aspx.cs文件中超链接的事件里面,做清空session内容的操作。
第4个回答  2013-08-08
你用Response.Rediredt("main.aspx");试试呢。

ASP.NET C# 弹出对话框提示信息点击确定不跳转页面(仍留在网页)
我用的是LinkButton你可以参考一下,希望对你有用 前台代码:提示信息 <asp:LinkButton CommandName="del" CommandArgument='<%#Eval("s_id") %>' ID="LinkButton2" runat="server" OnClientClick="if(window.confirm('你确定要删除!')){ return true;}else{return false;}">删除<\/asp:LinkBu...

asp.net用的C#语言能不能做到点击按钮不刷新页面?
用Html控件中的按钮而不用Web控件中的按钮即可 如果你要在后台添加按钮的点击事件只需添加runat="server" onserverclick=""属性即可 如:

asp.net(C#)为什么上传了exe文件页面就无法显示
追问: 我是想知道为什么会出现这种情况呵。是代码没写好还是怎么的。 回答: 是代码写好了,他不允许上传可执行文件,或者是服务器技术不让你上传可执行文件 追问: 代码是我写的呵。我是在本机上运行的呵。别的后缀后都可以到进到后台,就是exe进不了。。?憧茨愦?氲纳洗?糠郑?忻挥屑邮裁聪...

ASP.net(C#) 从数据库提取数据 如何显示到网页指定位置
<asp:Repeater ID="rep_CommpanyNewsList" runat="server"> <ItemTemplate> <%# Eval("Title")%> <\/ItemTemplate> <\/asp:Repeater> 你看这个,最外层有个div,你可固定这个div的位置,然后里面是ul-li列表,还有个Repeater标签,在后台应该先绑定Repeater,然后<%# Eval("Title")%>这个...

asp.net(C#) 怎么让Response.Redirect重新打开一个页面
在后台输出js打开就行了,类似于 string url="PersonPost.aspx?name=" + lblName.Text;Respose.Write("window.open('"+ url+"');");

在asp.net的自定义类(C#)中怎样把变量输出到页面?
可以用 Response.Write(变量名);进行检查性地输出变量当前的值,例如 int i = 100;Response.Write(i);即可。输出结果显示在对应的*.aspx网页的首行,调试完毕后可以直接注释了那句。P.S. 使用该句法之前记得引用一些命名空间 using System.Web;using System.Web.UI;等,具体有哪些忘记了,楼主用...

asp.net(C#)如何实现点击图片打开新窗口?
2. Response.Write("window.open(XXX.aspx','_blank')")——原窗口保留,另外新增一个新页面;3.Response.Write("window.location=XXX.aspx'")——打开新的页面,原窗口被代替;4.Server.Transfer("XXX.aspx")——打开新的页面;5.Response.Write("window.showModelessDialog(XXX.aspx')")——原窗...

软件工程设计师 C#、ASP.NET开发面试一般都会笔试和面试哪些题目,谢谢...
2. 列举ASP.NET页面之间传递值的几种方式 答: (1) 使用QueryString, 如...?id=1; response. Redirect()... (2) 使用Session变量 (3) 使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34... 求第30位数是多少,用递归算法实现 答: public class MainClass { public static...

asp.net(C#)弹出页面,怎么没有反应啊???
<asp:DataList runat="server" id="dljs" OnItemCommand="dljs_ItemCommand" ...> 第三点,你确认他被执行到了吗?“点击没有反应”,我不知道你点击了什么,因为不知道您的水平如何,所以请确认事件被触发了。另外一点,如果你用了UpdatePanel的话,我上面写的ClientScript可能无法输出,请换用...

asp.net怎么在一个文件(a.aspx)中引用另一个文件(b.aspx)
Server.Execute("b.aspx", writer);String html = writer.ToString() ;这时候的html就是b.aspx执行后返回的html代码。你可以把这段代码插在a.aspx的任意一个地方。Execute的第一个参数是地址,b.aspx后面可以跟querystring。3.页面需要跳转,那就用 Response.Redirect("b.aspx"); 这样用户看到的是b.aspx(浏览...

相似回答