2011-11-15 81 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