c# - 继承自 ASP.NET Web 控件 : "Element <name> is not a known element"

标签 c# asp.net inheritance user-controls

我正在尝试创建一个继承自 ASP.Net 内置日历用户控件的自定义日历控件。

我的控件的代码隐藏文件如下所示:

public partial class WeeklyEventsCalendar : Calendar
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

并且编译正常。

但是,当我尝试将我的自定义控件放在 aspx 页面上时:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testbed.aspx.cs" Inherits="testbed" %>
<%@ Register Src="UserControls/WeeklyEventsCalendar.ascx" TagName="WeeklyEventsCalendar"
    TagPrefix="mvs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <link href="~/css/VitalSignsStyleSheet.css" type="text/css" rel="stylesheet" />
</head>
<body>
    <div>
        <mvs:WeeklyEventsCalendar runat="server" />
    </div>
</body>
</html>

我收到一条警告 'Element WeeklyEventsCalendar 不是已知元素。如果网站中存在编译错误,或者 web.config 文件丢失,就会发生这种情况。' 尝试

当我错误输入文件位置时,我没有像过去那样收到任何类型的“找不到文件”错误。

当我尝试在浏览器中加载 aspx 页面时,出现错误 CS0115:'ASP.usercontrols_weeklyeventscalendar_ascx.FrameworkInitialize()': 找不到合适的方法来覆盖

这更令人困惑,因为我没有在我的代码中尝试定义这样一个函数。

这应该很简单。我哪里错了?

最佳答案

我认为问题在于您试图从用户控件(基于您的 ASCX 扩展名)继承 Calendar 控件(这是一个服务器控件)。你不能这样做。如果要从日历控件继承,则需要创建一个服务器控件。

如果您需要一些示例代码,请告诉我。

关于c# - 继承自 ASP.NET Web 控件 : "Element <name> is not a known element",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188334/

相关文章:

c# - ComboBox 中的 SelectedItem 绑定(bind)

asp.net - 代码隐藏无法引用页面控件

c# - 如何根据派生类字段过滤基类集合?

java - 如何覆盖java变量并使变量成为必填字段

java - Java中的受限继承

c# - 如何使用 CSV Helper 映射集合

c# - MVC2 C# TextAreaFor 包含 ', ,'

c# - 新的 web.config 无需更改即可在 Azure 上运行吗

c# - 如何使用动态列执行 LINQ where 子句

javascript - Bootstrap 模式无法正确加载