2011-02-08 16 views
0

私のWebアプリケーションの基盤となるページを作成して、内部にいくつかの共通機能を追加しました。Pageページから継承するにはどうすればよいですか?

The type or namespace name 'CentralPage' could not be found (are you missing a using directive or an assembly reference?)

注:私はそれからinhiriteしようとするが、その後VSは私に次のエラーを与える私は、ベースページのコードビハインド機能が欲しいです。

どうすればよいですか?

+0

おそらくあなたのページのコードビハインドを投稿すると便利でしょう。 –

答えて

5

ページを継承するにはベースページが必要です。あなたのコメントから、私は多分それはあなたを助ける、異なる名前空間に2を入れている:

namespace Project.BasePages 
{ 
    public class BasePage : Page 
    { 
    } 
} 

その後、他のすべてのページではなく、デフォルトPageBasePageから継承する必要があります。

using Project.BasePages; 

namespace Project.ContentPages 
{ 
    public partial class Page1 : BasePage 
    { 
    } 
} 

または

BasePageがフルASPXページであってはならないことを
namespace Project.ContentPages 
{ 
    public partial class Page1 : Project.BasePages.BasePage 
    { 
    } 
} 

注意、普通の*.csクラスファイル。

+0

ありがとう、私は知っているが、BasePageが別のファイルに存在すると、あなたが書いたものを使うことができなかった。 – Homam

+0

@ジョン:2つのクラスが別々のファイルにあることは完全に正常です。彼らが同じプロジェクトと同じ名前空間にいる場合は、お互いをうまく見ることができるはずです。 'BasePage'が' Page1'と異なる名前空間にある場合、正しい名前空間を含めるには、ファイルの先頭に 'using'ステートメントが必要です。 –

+0

@Graham Clark:名前空間がないようですね! 'base ::'を通してベースページにアクセスできませんでした!!! – Homam

0

一般的な機能のマスターページを使用する必要があります。とにかく、あなたが本来持っているのと同じ名前空間にある中央ページです。完全修飾名またはusingディレクティブを使用してみてください。

+0

申し訳ありませんが、[完全修飾名]を取得するには? – Homam

+0

@ John:完全修飾名は、クラスの完全な名前空間とその名前(例: 'var sb = new System.Text.StringBuilder()'ファイルの先頭にusing using System.Text;という文がある場合は、 'var sb = new StringBuilder()'と入力するだけです。 –

関連する問題