通常我们都会使用using System.Linq;
和using System.Data.Linq;
例如,在代码隐藏中,我们期望可以从源代码中访问这些命名空间的成员,如 <%= Something.First()%>
但是当我写的时候,asp.net说找不到First()
在上下文中,我必须添加 <%@ Import Namespace="System.Linq"
这对我来说看起来很奇怪,但它成功了。由于它们针对同一类,因此它们都需要单独的命名空间导入。
代码隐藏:
using System;
using System.Data.Linq;
using System.Linq;
using System.Text
namespace Something
{
class Items : System.Web.UI
{
//...
}
}
但我还需要在 Html Source 部分添加相同的 Linq 命名空间
<%@Import Namespace="System.Linq"%>
我是否知道有什么问题或者这是 ASP.NET 中的某种错误?我想当页面编译时,asp.net结合这两个类并将html源代码转换为cs类并指示Control c= new Control();
中的控件层次结构。
提前致谢。
P.s:我正在尝试联系例如 First()
在 Items.aspx 以及我提到的有关 asp.net 页面的所有内容中,即 Items.aspx
最佳答案
您必须在这两个位置指定您的命名空间。这是正常行为。编译器需要这样做,以便在将 aspx 页面和代码隐藏页面合并到一个类并进行实际编译之前分别预编译它们。
默认情况下,aspx页面中已经包含了一些常见的命名空间,因此您不需要导入它们。但在你的情况下,你需要导入 Linq。
编辑:正如 Joel Coehoorn 所说,如果您不想在 aspx 页面中手动添加它们,您可以将它们添加到 Web.config 中的默认命名空间列表中。
关于c# - 命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2594240/