2011-11-15 12 views
0

私は他のページにリダイレクトすることを唯一の目的とするWebフォームを持っています。レスポンス。リダイレクトとHTMLコンテンツ

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

私も削除:今なくなっているにも文書型とHTMLタグ - 私は、通常のaspxページとしてそれを作成し、私は.aspxのファイルのすべてを削除し、以下に示しちょうど最初の行を続けました。 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