当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)

ASP.NET
LCS问题算法之VB.net版
一个自定义LABEL组件的C#源代码
在C#中使用XML指南之读取XML
Asp.Net页面输出到EXCE
DataGrid脚眉显示合计
类似BOOLEAN列的DATAGRIDTEXTBOX的改进
在.net中调用存储过程的另一种方法
.net中窗体的调整
按钮列的应用
带颜色的listbox控件
可拖动的无标题栏窗体
正弦函数的绘制的一种方法
使用反射实现根据名称动态创建窗体的几种方法
运行时拉伸和移动控件的类
字符串根据多个字符进行分割的一种方法
使用递归从数据库读取数据来动态建立菜单
设置tabcontrol控件选项卡的字体为竖着的
容器中控件的拖动
单元测试辅助类
VB.net 调用带参数存储过程

ASP.NET 中的 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 167 ::
收藏到网摘: n/a

今天将webserice里面的一个代码,拷到一个C#类,结果运行编译错误。
DataBase = Server.MapPath("data.mdb");
报错:找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)
但是我的确引用了名字空间using System.Web;为什么呢?
因为Server的完整路径是System.Web.HttpContext.Current.Server。using System.Web是显然不够的;但是在从内置Page类继承的类中可以直接写Server.MapPath"data.mdb"),应该是因为Page类已经包含了这些类路径。
由此总结对这类错误的解决方法如下
1、确保正确的程序集引用:
确保引用了包含命名空间的程序集。如果是在 Visual Studio .NET 中进行开发,则可以转到项目菜单并单击添加引用。在 .NET 选项卡上,选择包含您要导入的命名空间的程序集,或者浏览到包含程序集的文件夹。如果在使用命令行编译器,则向编译语句中添加相应的开关 (/reference)。
2、正确的命名空间:
(1)*如果你从Page类继承的类中执行这条语句,才可以简单地使用
DataBase = Server.MapPath("data.mdb");
(2)如果在普通类中
A)将using 语句放在包含类型引用的代码文件的顶端,确保在将命名空间导入项目:
using System.Web;
DataBase = HttpContext.Current.Server.MapPath("data.mdb");
B)如果没有using语句,则完全限定对类型的引用:
DataBase = System.Web.HttpContext.Current.Server.MapPath("data.mdb");