2010-07-06 78 views
4

定义的类型或命名空间名称“脚本”不存在命名空间“System.Web程序”存在(是否缺少程序集引用?)的System.Web犯规包含脚本

它给错误的下面一行的System.Web

回答

6

谷歌的 “System.Web.Script.Services.ScriptService”

我已经包括名字空间是你最好的朋友。 MSDN第二。

ScriptServiceAttribute类

名字空间:System.Web.Script.Services

装配:System.Web.Extensions程序(在 System.Web.Extensions.dll

您是否添加了对此dll的引用?

+0

当我编写System.Web时,智能感知不显示脚本。 – Jaspal 2010-07-06 16:26:46

+0

我想我错过了一些非常基本的东西......因为我新编程 – Jaspal 2010-07-06 16:28:27

+0

命名空间可以跨越多个dll文件。如果您添加对System.Web.Extensions.dll的引用,您将在System.Web中看到脚本。如果你对编程很陌生,可能你应该从一开始就开始,而不是从高级任务开始?如果你想学习.NET,你应该首先阅读一些书籍,这样的命名空间和DLL的东西不是你的谜。 – Andrey 2010-07-06 16:46:39

10

两个问题:

  1. System.Web.Script.Services.ScriptServiceAttribute存在于System.Web.Extensions组装,而不是System.Web。确保你在项目中引用System.Web.Extensions组件。
  2. 当明确引用属性时,您需要提供其全名“ScriptServiceAttribute”,而不仅仅是“ScriptService”。

一旦我引用System.Web.Extensions程序,下面编辑对我来说:

System.Web.Script.Services.ScriptServiceAttribute ss; 
+0

命名空间'System.Web'中不存在类型或命名空间名称'Extensions'(你错过了一个程序集引用吗?)\t 那是你对迈克尔的忏悔吗? – Jaspal 2010-07-06 16:25:36

+0

我不知道为什么我intellisense不显示扩展名时,我写system.web。 – Jaspal 2010-07-06 16:34:31

+0

@Jaspal - 看起来像Andrey回答了你的问题。 – 2010-07-06 20:16:06

1

添加targetFramework给你web.config f ILE。

<compilation debug="false" strict="false" explicit="true" **targetFramework="4.0"** /> 

它通常发生在将代码特别是Web方法从旧版本(例如.net 3.5)迁移到新版本时。

Arun