【发布时间】:2026-01-31 10:15:01
【问题描述】:
通常我们都会在代码隐藏中使用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 :我正在尝试访问例如 Items.aspx 中的 First() 以及我提到的关于 Items.aspx 的 asp.net 页面的所有内容
【问题讨论】:
-
你的意思是First()是在这个页面后面的Items类上定义的方法吗?
-
我的意思是它是 System.Linq 的扩展方法,但我无法访问它,因为我还必须在源 html 上声明它才能查看成员。在代码隐藏中导入它似乎不适用于源代码部分。
-
正确。它们是分开编译的。请参阅下面的评论。
-
我已经编辑了我的答案,将所有内容放在一个位置。
标签: c# asp.net namespaces