根据我的阅读,ClassName
指令上的Inherits
和@ Master
属性似乎做了几乎相同的事情。我读过this page on MSDN和许多其他来源,我仍然感到困惑。 This forum page似乎表明Inherits
属性指定了在运行时代表母版页的类的名称。 MSDN页面更模糊,似乎也说了同样的话。这样,它也将是代码隐藏文件中指定的分部类的名称。
阅读MSDN上的ClassName
属性,似乎意味着同样的事情。我在我的代码中尝试了很多实验,但仍然无法使用。
这两个属性究竟做了什么,它们之间有什么区别?
最终,我希望实现的是允许我的.aspx页面访问母版页代码隐藏文件中的公共方法,如几篇文章including this one所述。
答案 0 :(得分:2)
ClassName
用于为页面命名。因此,当我们在aspx页面中使用服务器端代码时,只应使用脚本块来使用此属性,例如:
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
welcomeLabel.Text = "Hi There";
}
</script>
这可以用于页面或用户控件。
At run time, a single-file page is treated as a class that derives from the Page class. AND THIS CLASS SHOULD HAVE A NAME
由于没有单独的C#代码文件[也称为Code Behind文件],因此没有明确定义的类。为了给页面的类命名,正在使用ClassName
属性。
继承属性::
如果我们将页面的服务器端代码放在.cs文件中,那么我们只应使用Inherits
属性。
编译Web表单时,将解析其页面并生成并编译新类。此新类派生自inherits
关键字中标识的类。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LINQ2Entities.aspx.cs"
Inherits="LINQ2Entities" %>