2009-08-14 4 views
0

私は、asp.net Webサイトをmsdnのガイドに従ってWebアプリケーションに変換しようとしていました。ただし、次のエラーを取得し、テンプレートを実装して、私のユーザーコントロールのいくつかの問題点に遭遇アイブ:WSをWAPに変換する

「System.Web.UI.UserControlは」「ContentTemplate」

という名前のパブリックプロパティを持っていません。コードビハインドは、WSのようにうまく動作するこのようなテンプレートプロパティを明確に定義します。

[TemplateContainer(typeof(ContentContainer))] 
[PersistenceMode(PersistenceMode.InnerProperty)] 
[TemplateInstance(TemplateInstance.Single)] 
public ITemplate ContentTemplate { get; set; } 

アップデート:私は知っているどのようにか、なぜいけないが、これらのコントロールのいくつかは(追加デザイナーのファイルで)WAPのユーザーコントロールに変換するために管理している、との問題は、私はこれらのテンプレート内で定義なしASPコントロールができることですコードの背後にはもう見つからない。

エラー:

<%@ Register src="~/Controls/Containers/ContainerFrame.ascx" tagname="ContainerFrame" tagprefix="uc" %> 

<uc:ContainerFrame ID="ContainerFrame1" Title="Layout" runat="server"> 
<ContentTemplate> 
    <asp:DropDownList ID="DropDownRoles" runat="server" /> 
</ContentTemplate> 
</uc:ContainerFrame> 

任意のアイデア:

名は 'DropDownRoles' は現在のコンテキスト

でマークアップを存在しないのですか?

+0

名前空間を追加すると、部分的に役立ちました。 「名前 'TextBoxUserName'は現在のコンテキストに存在しません」というエラーはページのコードビハインドからランダムに表示されます。 空のWAPソリューションに類似のコードを書き込んでもエラーが発生しなかったため、非常にランダムに感じられました。 問題を突き詰めるとき、最善の解決策は、csファイルを「組み込みリソース」として選択してコンパイルできるようにすることでしたが、結果として副作用が生じました。コードビハインドcsファイルをコンパイルする必要はありませんか? – CodeSpeaker

答えて

1

見つからない場合は、ネームスペースの問題を推測します。

私は通常、ページの宣言でこのような問題があったが、それは、私はそれはおそらく、名前空間の問題だということに同意し、ユーザーコントロールのために、おそらく

1

同じです。 Webサイトプロジェクトは子供向けのものであり、名前空間は子供にとって複雑すぎるものです。 Webアプリケーションプロジェクトを使用すると、大人のテーブルに移動したことを意味します。

正しい名前空間のクラスを使用して、すべてのものが正しくビルドされるまで、カスタム型名の完全修飾を開始することをお勧めします。

+0

+1、私は子供ではないので、私はちょうど私が幼稚していると思う – CodeSpeaker

関連する問題