2009-11-03 9 views
14

So habe ich einen anderen Nudel-Scratcher (für mich jedenfalls).Meine Kontrolle ist "hier nicht erlaubt, weil es nicht Klasse erweitert System.Web.UI.UserControl"

Ich versuche, mein eigenes benutzerdefiniertes Steuerelement in einem CMS zu erstellen, ich habe nur teilweise Quellcode für (d. H. Proben, die der Anbieter an mich geliefert hat). Grundsätzlich habe ich eine Klasse namens DataDefinitionContent erstellt, die ControlBase erweitert. Nun, von dem, was ich von den Metadaten sammeln kann, ControlBase erstreckt sich UserControl, also hätte ich gedacht, dass dies ohne Drama laufen würde. Kann irgendjemand etwas darüber sagen, warum das bei mir nicht funktioniert?


Meine Klasse:

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

Control:

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

Meine ascx Datei:

<%@ 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" %> 

Der Fehler Ich erhalte:

Parser-Fehlermeldung: 'CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null' ist hier nicht erlaubt, weil es tut nicht Klasse "System.Web.UI.UserControl" erweitern.

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

+0

Ist Ihre partielle Klasse in einem Namespace? –

+0

Eigentlich nein, ist es nicht. Kannst du mir einen Hinweis geben, wie ich den Namensraum entziffern würde? (OP ist immer noch ein Neuling) –

+0

Nun haben Sie = "CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = null" in Ihrem Inherits, die ich nicht ' Ich glaube, du brauchst es. Der Namespace sieht wie CMS.Admin.WebUI.CustomControls aus, obwohl ControlBase wie in CMS.Web aussieht. –

Antwort

11

Versuchen Sie, Ihre Teil-Klasse setzen in

namespace CMS.Web 
+0

Ihr Vorschlag hat funktioniert, aber ich habe mich dem Problem aus einem anderen Blickwinkel genähert. Danke für Ihre Hilfe. –

+0

Cooler Mann. Welchen Ansatz haben Sie gewählt? Das gesamte Namespace-Problem kann zu einem absoluten Albtraum werden, wenn Sie eine WebSite in eine Webanwendung konvertieren. –

4

Ich erhielt diesen Fehler, wenn der Name der Klasse, die die UserControl-Klasse erweitert, nicht der Name war, der bei der ASP-Einbindung verwendet wurde. Ich habe die Änderung an dem Klassennamen vorgenommen und die Lösung erneut implementiert. Das Problem wurde behoben.

Verwandte Themen