我的困惑在这里并不是新的或在网络上,但是,我有一些问题,我没有在任何地方找到答案:
第一个问题是:
为什么CodeFile上需要继承而不是CodeBehind?
我阅读了http://msdn.microsoft.com/en-us/library/vstudio/ms178138(v=vs.100).aspx以及更多页面,我知道CodeFile是用于源代码和动态编译而另一个用于程序集。这又提出了另一个问题:
为什么每个人都说如果我找到CodeBehind必须是一个程序集 File.aspx.cs无处不在,包括在我拥有的测试项目中 奇迹般有效?这是一个编译的程序集吗?
但是,从第一个问题开始,基于我提供的网址,我可能会理解,为什么继承是必要的。我假设编译器必须知道稍后要编译的部分类的名称。说得通。然而,在CodeBehind上也不一定有必要吗?如果我们要合并部分类,我想我应该给出我要合并的名称。我甚至尝试在.cs文件中添加另一个部分类,并且编译/运行良好。
我在这里错过了什么吗?
我还读到CodeBehind不再使用了,它是CodeFile,新的。
任何.NET大师帮助我?
提前谢谢大家。
更新:
我尝试在CodeBehind上使用no Inherit实现事件。它没用。这更有意义。但是,它不会在编译时抱怨,而CodeFile会这样做。这有什么理由吗?
答案 0 :(得分:1)
继承属性带有写在代码隐藏文件后面的类名。你可以在文件后面的同一代码中有多个类,并在两个不同的.aspx文件中继承
答案 1 :(得分:1)
CodeBehind文件提供了aspx页面的代码。当您添加一个新的“带有CodeBehind的ASP.NET网页”时,我们称之为NewPage.aspx,还会创建2个文件,名为NewPage.aspx.cs和NewPage.aspx.designer.cs。 NewPage.aspx.cs是您的CodeBehind文件。正如Vijay所说,由于(C#)文件可以有多个类(与Java不同,其中类文件只能包含1个类,并且类名必须与文件名匹配),Inherits=[namespace].[class]
表示您希望将哪个类实际用于网页。
CodeBehind
属性适用于Web应用程序项目。另一方面,CodeFile
属性用于网站项目。