2011-11-15 48 views
0

我有一个Web窗体,其唯一目的是重定向到其他页面。我创建它作为一个正常的aspx页面,然后我删除了.aspx文件中的一切,并保持如下图所示只是前行 - 甚至在DOCTYPE和HTML标签,现在都消失了:Response.Redirect和HTML内容

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Redirect.aspx.cs" Inherits="Web.Redirect" %> 

我也删除了。 designer.cs文件,因为它不包含任何内容。它有效,但我想知道我做的是对的。在这种情况下,是否有任何关于从Web窗体中删除所有HTML内容的担忧?

回答

2

没有任何。你所做的是完全可以接受的。但是,如果页面的唯一目的是重定向,我将使用Handler/ASHX文件,因为它可以以完全相同的方式使用,并且没有ASPX页面那么多的开销。

这是description and example of how to use one

1

如果你做Response.Redirect(url),添加一个重定向头,结束请求。这意味着您的ASPX页面中的任何内容都不会输出到客户端。 Response.Redirect(url)之后的任何内容都不会输出到页面。你可以像删除它一样删除它。

如果你做Response.Redirect(url, false),响应没有结束,你的页面输出到客户端。但是,客户永远不会看到它,因为他被重定向。

+1

这不完全正确 - 接收到重定向头后,浏览器确实会重新指向,但是如果目标页面需要时间,那么用户可以看到您之前提供的html。所以一个好的做法是让html内容告诉用户他正在重定向到另一个位置(提供一个到该位置的链接)! – VinayC

+0

谢谢!我做了'Response.Redirect(url,false)',因为它在MSDN上是推荐的,我想如果没有HTML内容,客户端会看到和我调用'Response.Redirect(url)'相同的结果。 – Clafou