2009-11-03 11 views
14

私は別のヌードルスクラッチャー(私にとってはとにかく)を持っています。私のコントロールは "System.Web.UI.UserControl 'クラスを拡張しないのでここでは許可されていません"

CMSで独自のカスタムコントロールを作成しようとしていますが、部分ソースコード(ベンダーが提供してくれたサンプル)しかありません。基本的にDataDefinitionContentというクラスを作成しました。このクラスはControlBaseです。今、私がメタデータから得られるものから、ControlBaseUserControlまで拡張されているので、これはドラマなしで動くと思ったでしょう。なぜこれが私のために働いていないかもしれないのか誰にも光を当てることができますか?


私のクラス:

public partial class DataDefinitionContent : ControlBase, ICustomControl<DataDefinition> 
{ 
... Stuff 
} 

ControlBase:

using System; 
using System.Web.UI; 
namespace CMS.Web 
{ 
    public class ControlBase : UserControl 
    { 
    ... Stuff 
    } 
} 

マイASCXファイル:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DataDefinitionContent.ascx.cs" 
    Inherits="CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" %> 

私は取得していますエラー:

パーサーエラーメッセージ: 'CMS.Admin.WebUI.CustomControls.DataDefinitionContent、 CoA.Admin.WebUI、バージョン= 1.0.0.0、 カルチャニュートラル、PublicKeyToken = = null' それがないので、ここでは許可されていません クラスを拡張しない 'System.Web.UI.UserControl'。

1行目:制御言語= "C#の" @ <% AutoEventWireup属性= "true" を分離コード= "DataDefinitionContent.ascx.cs"

+0

あなたの部分クラスは名前空間内にありますか? –

+0

実際、そうではありません。あなたは私がそれを置くべき名前空間をどのように解読するのかについて私に手がかりを与えることができますか? (OPは未だに初心者です) –

+0

あなたの継承者には、 "CMS.Admin.WebUI.CustomControls.DataDefinitionContent、CoA.Admin.WebUI、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null"あなたが必要と思う。名前空間はCMS.Admin.WebUI.CustomControlsのように見えますが、コントロールベースはCMS.Webのように見えます –

答えて

11

namespace CMS.Web 
+0

あなたの提案はうまくいきましたが、別の角度から問題に近づきました。ご協力いただきありがとうございます。 –

+0

クールな男。どのようなアプローチをとったのですか? WebSiteをWebアプリケーションに変換すると、名前空間全体の問題が完全に悪夢になることがあります。 –

4
にあなたの部分クラスを入れてみてください

UserControlクラスを拡張していたクラスの名前がASPインクルードで使用された名前ではない場合、このエラーが発生しました。クラス名を変更して、ソリューションを再デプロイしました。問題は修正されました。

関連する問題