2010-07-06 73 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