Mon contrôle n'est "pas autorisé ici parce qu'il n'étend pas le système de classe".Web.INTERFACE.UserControl'"

J'ai donc un autre gratteur de nouilles (pour moi de toute façon).

j'essaie de créer mon propre contrôle personnalisé dans un CMS pour lequel je n'ai que du code source partiel (c'est-à-dire des échantillons que le vendeur m'a fournis). Fondamentalement, j'ai créé une catégorie appelée DataDefinitionContent qui s'étend ControlBase. Maintenant, de ce que je peux tirer des métadonnées,ControlBase s'étend UserControl, donc j'aurais pensé que ce serait exécuté sans drame. Est-ce que n'importe qui peut apporter la lumière sur pourquoi cela pourrait ne pas fonctionner pour moi?


Ma Classe:

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

ControlBase:

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

mon fichier 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'erreur que j'obtiens:

Parser Message D'Erreur: "CMS.Admin.L'interface utilisateur web.CustomControls.Datadéfinitioncontent, COA.Admin.L'Interface Utilisateur Web, Version=1.0.0.0, Culture=neutre, Publiceytoken = null n'est pas autorisé ici parce qu'il n' ne pas étendre la classe 'Système.Web.INTERFACE.UserControl".

ligne 1:

14
demandé sur Iain Fraser 2009-11-03 09:04:12

2 réponses

Essayez de mettre votre classe partielle dans

namespace CMS.Web 
11
répondu Jack Marchetti 2009-11-03 06:21:58

j'ai eu cette erreur quand le nom de la classe qui étendait la classe UserControl n'était pas le nom utilisé dans L'inclusion ASP. J'ai fait le changement de nom de classe et j'ai redéployé la solution. Le problème a été résolu.

5
répondu Sofia Khwaja 2012-07-23 15:56:09