【发布时间】:2009-11-17 18:05:55
【问题描述】:
我有一个在 VS 2008 中开发的 ASP.NET 网页,在 aspx 页面中有以下 Page 指令
我在我的页面中放置了一个asp.net按钮控件并双击它来编写一个事件。它在aspx页面本身中显示事件(方法)。为什么它没有被添加到 aspx.cs 文件中?
我已经从页面中删除了 Inherits 属性,因为我想将它部署到包含 aspx 文件和 aspx.cs 文件的环境中。 (不是 DLL 的)
【问题讨论】:
我有一个在 VS 2008 中开发的 ASP.NET 网页,在 aspx 页面中有以下 Page 指令
我在我的页面中放置了一个asp.net按钮控件并双击它来编写一个事件。它在aspx页面本身中显示事件(方法)。为什么它没有被添加到 aspx.cs 文件中?
我已经从页面中删除了 Inherits 属性,因为我想将它部署到包含 aspx 文件和 aspx.cs 文件的环境中。 (不是 DLL 的)
【问题讨论】:
您可以尝试在 Page 指令中使用 CodeFile 而不是 CodeBehind。但是,在这种情况下,您还需要声明对页面上控件的引用。
如果您不想部署 DLL,通常的解决方案是将您的站点构建为 Visual Studio“网站”而不是“Web 应用程序”。使用网站,您只需将所有代码和 .aspx 文件复制到服务器,它们将在第一次访问时被编译。
【讨论】:
试试这个(将 namespace.to.my.class 替换为包含 SupplierAnalysis 类定义的命名空间):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SupplierAnalysisReport.aspx.cs" Inherits="namespace.to.my.class.SupplierAnalysisReport" %>
您需要 Inherits atttibue 以及 CodeBehind。
【讨论】:
这是因为如果您删除 Inherits 属性,设计器将不再能够找到在您的代码中定义的部分类。 CodeBehind 和 Inherits 属性一起工作。
指定包含与页面关联的类的已编译文件的名称。此属性在运行时不使用。
此属性包含在 与以前版本的兼容性 的 ASP.NET,以实现 代码隐藏功能。在 ASP.NET 中 2.0 版,您应该改用 CodeFile 属性来指定 源文件的名称,以及 Inherits 属性指定 类的完全限定名。
【讨论】: