How do i specify CodeFileBaseClass from web.config?(如何从 web.config 指定 CodeFileBaseClass?)
问题描述
i1 正在 web.config
中注册一个 用户控件 Control
:
i1 am registering a user control Control
in web.config
:
<configuration>
<system.web>
<pages validateRequest="false">
<controls>
<add src="fi9HZW5lcmljQ29udHJvbHMvVG9vbGJhci5hc2N4"
tagName="Toolbar" tagPrefix="Vista" />
</controls>
</pages>
</system.web>
<configuration>
现在,因为我的 用户控件" 是 Control
,而不是 UserControl
(为了支持模板),这会导致Visual Studio 错误:
Now, because my "user control" is a Control
, rather than a UserControl
(in order to support templating), this causes the Visual Studio error:
ASPNET:确保此代码文件中定义的类与继承"属性匹配,并且它扩展了正确的基类(例如 Page 或 UserControl).
ASPNET: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or UserControl).
此错误的修复方法是您必须提醒 Visual Studio *control继承自
Control`:
The fix for this bug is that you have to remind Visual Studio that the *controlinherits from
Control`:
<%@ Page language="c#" Inherits="University.AspNet.Index"
CodeFile="Index.aspx.cs" CodeFileBaseClass="XXXXXX" %>
具有超级机密的 CodeFileBaseClass
属性.除了我没有使用 Page 指令外,我在 web-config 中注册了 site-wide 控件:
with the super-secret CodeFileBaseClass
attribute. Except i'm not using a Page directive, i'm registering the control site-wide in web-config:
<add src="fi9HZW5lcmljQ29udHJvbHMvVG9vbGJhci5hc2N4"
tagName="Toolbar" tagPrefix="Vista" />
如何在 web.config
中指定 CodeFileBaseClass
?
这个问题是 Stackoverflow 系列中的一个,模板化用户控件":
This question is one in the ongoing Stackoverflow series, "Templating user controls":
- 如何向用户控件添加模板?一个>
- 如何继承自Control,而不是继承自UserControl?
- UserControl 有 IsPostBack,但 Control 没有
- UserControl 没有名为 ContentTemplate 的公共属性
- 如何从 web.config 指定 CodeFileBaseClass?
推荐答案
试试这个:
<system.web>
<!-- ... -->
<pages pageBaseType="MyWeb.UI.MyPageBase" />
<!-- ... -->
</system.web>
另外,请参考以下链接:
http://blogs.msdn.com/b/tom/archive/2008/08/22/known-issues-for-asp-net-with-net-3-5-sp1.aspx
http://forums.asp.net/t/1305800.aspx
建议的解决方法:
如果不是所有页面都需要 pageBaseType 类(例如 MyBasePage),您可以将其从 web.config 文件中删除,或者
If the pageBaseType class (for example, MyBasePage) is not needed for all pages, you can remove it from the web.config file, or
如果页面确实需要 pageBaseType 值,请修改代码隐藏文件中的类以扩展基本类型.在 filename.aspx.cs 代码隐藏文件中,确保该类继承自 web.config 文件中指定的 pageBaseType(例如,公共部分类 CodeFileClass : MyBasePage 而不是公共部分类 CodeFileClass : System.Web.UI.Page).
Where pages do require the pageBaseType value, modify the classes in the code-behind files to extend the base type. In the filename.aspx.cs code-behind file, make sure that the class inherits from the pageBaseType that is specified in the web.config file (for example, public partial class CodeFileClass : MyBasePage instead of public partial class CodeFileClass : System.Web.UI.Page).
另一种解决方法将允许您将以下属性添加到您的页面指令:
An alternative workaround will allow you to add the following attribute to your page directive:
CodeFileBaseClass="System.Web.UI.Page"
这篇关于如何从 web.config 指定 CodeFileBaseClass?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何从 web.config 指定 CodeFileBaseClass?
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01