无论我的机器的根网络配置(Windows / Microsoft.NET / ...中的配置)是否包含system.web/pages/namespaces/add
元素,仍然要求我在每个aspx.cs CodeBehind文件上包含using语句。为什么?它不应该编译而不是抱怨它无法理解页面是什么?毕竟,根{000}中存在<add namespace="System.Web" />
!
答案 0 :(得分:9)
system.web/pages/namespaces/add
元素用于.ASPX
个文件,普通.CS
个文件(包括.ASPX.CS
)仍然需要正确using
,因为没有预先编译前处理源代码。因此.ASPX.CS
必须是有效的CS文件,包括所有using Namespace
声明。
答案 1 :(得分:7)
这会为您的aspx和ascx文件添加名称空间,这样您就不必包含<%@ Import Namespace="MyNameSpace" %>
语句。
namespaces元素定义了一个import指令集合 在汇编预编译期间使用。该属性对应于 ASP.NET页面上的@ Import指令。 @ Import指令允许 您可以指定自动导入到所有名称空间的名称空间 应用程序的页面。
您的代码隐藏不受这些web.config条目的影响。
答案 2 :(得分:5)
此处的其他答案表明此web.config设置仅影响ASPX页面,而不影响ASPX.CS等代码隐藏页面。我刚刚在一个针对.NET 4.0的ASP.NET网站上对此进行了测试,并且发现这对于C#页面来说是正确的,但对于VB页面则不然。
在web.config设置中添加命名空间,无需在每个ASPX.VB页面的顶部列出它。
我会对任何理论感兴趣。我原以为它会对文件后面的ASPX.CS和ASPX.VB代码起作用。