ASP.NET(C#) 使用Server.Execute()后不能跳转页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
怎么解决?
目标页面和原页面可以在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>之间的 参考技术A 其实逻辑不用这么复杂 跳转页面传值 直接用url传值 然后呢 在main页面 在pagelode里获取 如果获取不到直接跳转到login页面 或者提示页面 让他去登陆 在一个网站中如果很多页面要用到用户名 而且这个网站还是个大网站 用户很多 是不会用session的 这样很耗服务器内存 影响网页打开性能 一般用url传值 一般的逻辑 是正确判断用户在数据库存在后 直接跳转页面 顺便传过去所需要的值 注意不能传密码等敏感信息 然后呢 会根据相应的用户名加载相应的模块 就比如登陆QQ空间; 参考技术B 为什么在做一个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里,我相信就可以了。 参考技术C 在main.aspx.cs文件中超链接的事件里面,做清空session内容的操作。 参考技术D 你用Response.Rediredt("main.aspx");试试呢。
使用 c# 和 asp.net 访问 javascript 代码?
【中文标题】使用 c# 和 asp.net 访问 javascript 代码?【英文标题】:accessing javascript code using c# and asp.net? 【发布时间】:2011-11-03 02:29:28 【问题描述】:我正在做一个小项目,但遇到了问题。
如果我想从网页/博客中获取一些信息,那么我可以使用 webclient 方法并在 c#.net 中使用 HTMLAgilityPack 解析 HTML 页面,没关系
但这次我想从博客文章中的分享按钮(即 FB 分享、转推按钮等)获取信息。这些按钮还包含有关帖子已共享多少时间的信息。(按钮给出的编号)所以我想访问该信息。
我知道这是用 JavaScript 文件编码的(对吗?),所有信息都只包含在其中。
但我想访问该信息...
【问题讨论】:
不,你错了。不会在“文件中”编码任何信息 【参考方案1】:实现是基于使用的共享插件,有很多。
大部分是JS,是的,通过JS“在浏览器中”动态编写HTML。
你可以尝试一些浏览器自动化/测试框架,比如 Selenium WebDriver 来自动化浏览器打开页面,等待一段时间让 JS 完成它的工作,并在浏览器中查询你希望填充的元素的值那么。
检查http://seleniumhq.org/,http://nuget.org/List/Packages/Selenium.WebDriver
但明显的缺点是代码需要一个实际的用户配置文件才能运行,而不是作为服务运行。 .NET AFAIK 中没有“好的”“可靠的”无浏览器 UI 测试框架。
【讨论】:
以上是关于ASP.NET(C#) 使用Server.Execute()后不能跳转页面的主要内容,如果未能解决你的问题,请参考以下文章
如何在asp.net c# web应用程序中使用asp.net vb页面
ASP.NET Razor——ASP.NET Razor - C#代码语法