次の方法で共有


デザイン ビューのレンダリングのトラブルシューティング

更新 : 2007 年 11 月

Web フォーム デザイナで正しく表示できないファイルを開こうとすると、いくつかの共通の問題が発生する可能性があります。デザイン ビューでレンダリングの問題が最もよく発生するのは、Visual Studio 以外の分離コード Web フォーム ページとして作成されたファイルを処理する場合です。ただし、それ以外にも、いろいろな状況でこの問題は発生します。典型的な問題は、Web フォーム ページの @ Page ディレクティブの属性や、Web フォームのユーザー コントロールにある @ Control ディレクティブの属性に関するものです。

Aa992034.alert_note(ja-jp,VS.90).gifメモ :

Web フォーム デザイナは、作業中のファイルと同じ拡張子を持つファイルのために登録されているエディタです。Web フォーム デザイナでファイルを処理しない場合は、ファイルの拡張子を変更してください。ソリューション エクスプローラでファイルを右クリックし、[ファイルを開くアプリケーションの選択] をクリックして、別のエディタをクリックする方法もあります。

Src 属性の問題

@ Page ディレクティブまたは @ Control ディレクティブに Src 属性を設定すると、エラーが発生する可能性があります。この属性は、Web フォーム デザイナではサポートされていません。このエラーを修復するには、次の処理を行います。

  • Src 属性を削除します。代わりに、次の属性を追加します。

    • プロジェクトに含まれる分離コード ファイルの名前を参照する CodeBehind 属性。

    • 分離コード ファイルで表されるクラスの名前を参照する Inherits 属性。このクラスは、System.Web.UI.Page クラスを継承します。

    Aa992034.alert_note(ja-jp,VS.90).gifメモ :

    分離コード ファイルと分離コード クラスがまだない場合は、Web フォーム デザイナで生成できます。Src 属性を削除したら、Inherits 属性に空の文字列 ("")、CodeBehind 属性に生成する分離コード ファイルの名前 (formname.aspx.vb または formname.aspx.cs) を指定します。ファイルを保存して閉じます。ソリューション エクスプローラで .aspx ファイルを右クリックし、[コードの表示] をクリックします。分離コード ファイルを保存すると、適切なクラス ファイルが生成されます。ファイルを再度開きます。分離コード ファイル内にコードを生成する操作 (コントロールの追加、イベント ハンドラを作成するためのコントロールのダブルクリックなど) を実行し、ファイルを保存します。Web フォーム ページの Inherits 属性が適切に設定されます。

Src 属性、CodeBehind 属性、および Inherits 属性を削除して、単一ファイルで構成される Web フォーム ページとしてファイルを扱う方法もあります。詳細については、「Visual Studio .NET におけるデータセットの更新」を参照してください。

CodeBehind 属性の問題

@ Page ディレクティブまたは @ Control ディレクティブ内の CodeBehind 属性は、ページのクラスが格納されているファイルの名前を参照します。たとえば、Visual Studio で WebForm1 という名前の Web フォーム ページを作成したとします。この場合、CodeBehind 属性は、WebForm1.aspx.vb または WebForm1.aspx.cs を指します。

CodeBehind 属性は、デザイン時にのみ使用されます。Web フォーム デザイナは、作業対象のページ クラスのインスタンスを作成できるように、この属性によってページ クラスの場所を特定します。

CodeBehind 属性に関する問題の一部を次に示します。

  • 参照先のファイルが使用できない。ファイルが存在しないか、名前が異なっています。

  • 参照先のファイルのクラスが、プロジェクトで参照されない基本クラスから継承したクラスである。通常、Web フォーム ページのクラスは System.Web.UI.Page クラスの継承クラスですが、モバイル デバイスなど、別のプラットフォームのユーザー コントロールや Web フォーム ページを使用する場合は、基本クラスが異なる場合があります。

参照先のファイルのクラスが、未コンパイルのプロジェクトの基本クラスから継承したクラスである。

Inherits 属性の問題

@ Page ディレクティブまたは @ Control ディレクティブの Inherits 属性は、ページが実行時に継承するクラスの名前を参照します。ファイル名は参照しません。Web フォーム ページの継承モデルの詳細については、「Web フォームのコード モデル」を参照してください。

Inherits 属性に関する問題は、CodeBehind 属性がない場合にのみ発生します。たとえば、単一ファイルで構成された Web フォーム ページがこれに該当します。CodeBehind 属性が存在しない場合に限り、デザイナは Inherits 属性によって参照されるクラスを使用して、デザイン時にページのインスタンスを作成します。

Aa992034.alert_note(ja-jp,VS.90).gifメモ :

CodeBehind 属性がある場合、Inherits 属性が使用できないクラスを指している場合でも、デザイナは Inherits 属性を無視します。その場合、デザイナでページを処理することはできますが、ページの実行はできません。

Inherits 属性に関する最もよくある問題は、プロジェクトまたは参照先アセンブリで使用できないクラスを Inherits 属性が指す場合です。

参照

概念

デザイン ビュー