惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
H
Help Net Security
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
D
Docker
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

博客园 - 想想

通过 ASP.NET 4.0、Visual Studio 2010 和 IIS7 实现的搜索引擎优化 WidgetIfYr.com:将代码转化为Widget TheUniformProject:1件衣服365种穿法 模板页全球化 使用SandCastle和HTML Help 2.0集成XML代码注释到VS2005和VS2008 iCalendar 中文VS2008安装MVC框架后,不显示相关模板 无法在证书存储区中找到清单签名证书 HttpModule实现简单权限限制访问 什么是数据持久性? 向google,baidu,yahoo,msn,sogou等搜索引擎提交网站 什么是 ASP.NET? (悼念四川地震死难者)使整个网页变黑白色(灰色)的特效代码 window.open 参数 详细说明 如果有一些引用存在于标记中,则不会重命名这些引用,要继续吗 如何用VS2005制作Web安装程序 ASP.NET弹出日历 在IIS 6.0环境下运行ASP.NET 1.1 CSS色谱表
Response.Redirect 打开新窗口的方法
想想 · 2008-04-23 · via 博客园 - 想想

           一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write(" <SCRIPT>window.location='http://dotnet.aspx.cc';</SCRIPT> ") 方法外,是不能在新窗口打开所指定的 URL 地址的。但是,如果仔细分析一下,如果设置 form 元素的 target 属性,还是有办法打开新窗口的。下面就是可以采用的两种方法。

方法一:在服务器端设置 target 属性,这个方法也非常适用于客户端不支持脚本的情况。代码如下:

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    
protected void Page_Load(object sender, EventArgs e)
    
{
        form1.Target 
= "_blank";
    }


    
protected void Button1_Click(object sender, EventArgs e)
    
{
        Response.Redirect(
"http://dotnet.aspx.cc");
    }

script
>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    
<title>title>
head
>
<body id="b" runat="server">
<form id="form1" runat="server">
    
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="打开新窗口或者新 Tab " />
form
>
body
>
html
>

办法二:采用客户端脚本的方法设置 target 属性。代码如下:

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    
protected void Page_Load(object sender, EventArgs e)
    
{
        Button1.Attributes.Add(
"onclick""this.form.target='_newName'");
    }


    
protected void Button1_Click(object sender, EventArgs e)
    
{
        Response.Redirect(
"http://dotnet.aspx.cc");
    }

script
>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    
<title>title>
head
>
<body id="b" runat="server">
<form id="form1" runat="server">
    
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="打开新窗口或者新 Tab " />
form
>
body
>
html
>

上面两种方法中的 target 属性可以采用任何合法的名称,但要注意,如果相同名称的窗口已经打开,则新窗口会在已经存在名称的窗口里打开。