16

So I have another noodle-scratcher (for me anyway).

I'm trying to create my own custom control in a CMS I only have partial source code for (i.e. samples the vendor has supplied to me). Basically I have created a class called DataDefinitionContent which extends ControlBase. Now, from what I can garner from the metadata, ControlBase extends UserControl, so I would have thought this would run without a drama. Can anyone shed any light on why this might not be working for me?


My Class:

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

ControlBase:

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

My ascx file:

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

The error I'm getting:

Parser Error Message: 'CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not allowed here because it does not extend class 'System.Web.UI.UserControl'.

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

Community
  • 1
  • 1
Iain Fraser
  • 6,578
  • 8
  • 43
  • 68
  • Is your partial class inside a namespace? – Jack Marchetti Nov 03 '09 at 06:13
  • Actually, no it isn't. Can you give me a clue as to how I would go about deciphering which namespace I should put it in? (OP is still a newbie) – Iain Fraser Nov 03 '09 at 06:16
  • well you have ="CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" in your Inherits which I don't think you need. The namespace looks like CMS.Admin.WebUI.CustomControls, though controlbase looks like its in CMS.Web – Jack Marchetti Nov 03 '09 at 06:21

3 Answers3

13

Try putting your partial class in

namespace CMS.Web 
Jack Marchetti
  • 15,536
  • 14
  • 81
  • 117
  • Your suggestion worked, but I ended up approaching the problem from a different angle. Thanks for your help. – Iain Fraser Nov 10 '09 at 02:47
  • Cool man. What approach did you take? The whole namespace issue can become an utter nightmare if you ever convert a WebSite to Web Application. – Jack Marchetti Nov 10 '09 at 16:36
  • More specifically the 'designer' file doesn't always generate with the proper namespace. Updating it to have the right namespace fixes the issue. – Michael Adamission Mar 12 '22 at 23:16
7

I was getting this error when the name of the class that was extending the UserControl class was not the name used in ASP inclusion. I made the change to the class name and redeployed the solution. The problem was fixed.

Sofia Khwaja
  • 1,909
  • 3
  • 17
  • 20
  • When rename the file, the name of the class is not update on every sites, this is my case. – Sieg Oct 02 '18 at 17:50
0

In my case error was thrown, because of missing namespace.

Bartosz546
  • 95
  • 5
  • More specifically the 'designer' file doesn't always generate with the proper namespace. Updating it to have the right namespace fixes the issue. – Michael Adamission Mar 12 '22 at 23:17