2009-11-03 27 views
14

Quindi ho un altro noodle-scratcher (per me comunque).Il mio controllo è "non consentito qui perché non estende la classe 'System.Web.UI.UserControl'"

Sto provando a creare il mio controllo personalizzato in un CMS. Ho solo un codice sorgente parziale (ad esempio, il fornitore mi ha fornito). Fondamentalmente ho creato una classe chiamata DataDefinitionContent che si estende ControlBase. Ora, da quello che posso ricavare dai metadati, ControlBase si estende UserControl, quindi avrei pensato che sarebbe stato eseguito senza un dramma. Qualcuno può far luce sul perché questo potrebbe non funzionare per me?


mio Classe:

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

ControlBase:

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

Il mio file 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" %> 

L'errore che sto ottenendo:

Messaggio di errore del parser: 'CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null' non è permesso qui perché fa non estendere la classe 'System.Web.UI.UserControl'.

Linea 1: <% @ Control Language = "C#" AutoEventWireup = "true" Codebehind = "DataDefinitionContent.ascx.cs"

+0

La classe parziale è all'interno di uno spazio dei nomi? –

+0

In realtà, no non lo è. Puoi darmi un indizio su come fare per decifrare quale spazio dei nomi dovrei inserire? (OP è ancora un principiante) –

+0

beh hai = "CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null" nei tuoi Inherits che non ho " penso di aver bisogno Lo spazio dei nomi è simile a CMS.Admin.WebUI.CustomControls, sebbene ControlBase sembri simile a CMS.Web –

risposta

11

Prova a mettere la vostra classe parziale in

namespace CMS.Web 
+0

Il tuo suggerimento ha funzionato, ma alla fine ho affrontato il problema da una diversa angolazione. Grazie per l'aiuto. –

+0

Uomo fantastico. Che approccio hai preso? L'intero problema dello spazio dei nomi può diventare un incubo assoluto se si converte un WebSite in un'applicazione Web. –

4

Stavo ricevendo questo errore quando il nome della classe che stava estendendo la classe UserControl non era il nome utilizzato nell'inclusione ASP. Ho apportato la modifica al nome della classe e ridistribuito la soluzione. Il problema è stato risolto

Problemi correlati