2011-05-02 65 views
3

有點失落現在...類型「System.Web.IHtmlString」在未引用的程序定義

我下面下面的文章來測試/學習嵌套佈局。 http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx

,我收到以下錯誤:

The type 'System.Web.IHtmlString' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. D:\Projects\Mvc3\Tests\RazorLayouts\Layout.MvcBase\Extensions\SectionExtensions.cs 15 36 Layout.MvcBase

我有名字空間的System.Web引用......而藍線是「RenderSection」。 public static HelperResult RenderSection

回答

1

檢查一切是否使用了相同的框架版本(例如,你沒有引用3.5的System.Web),以及是否安裝了任何測試版本,不同的版本。

如果你不能這樣做,你能否提供你的項目的zip文件(一定要刪除我們可以看到的任何敏感信息,例如API密鑰,連接字符串等)?

編輯:只是一個想法 - 你說你有命名空間 System.Web引用。這不同於組件 System.Web。可以在不使用程序集的情況下導入名稱空間,因爲其他程序集中的類(例如System.Web.Mvc)可以包含名稱空間。確保在您的Assembly參考文件夾中可以看到「System.Web」。

+0

這是一個測試應用程序,所以我可以提供它沒有任何問題 - 今晚晚些時候,雖然...其VS2010,當我創建測試解決方案,ASP.net 4.0被默認選擇... – 2011-05-02 16:02:24

+0

只是一個想法 - 你說你有*名稱空間* System.Web引用。這與* assembly * System.Web不一樣。可以在不使用程序集的情況下導入名稱空間,因爲其他程序集中的類(例如System.Web.Mvc)可以包含名稱空間。確保在您的Assembly參考文件夾中可以看到「System.Web」。 – 2011-05-02 16:07:23

+0

看起來我不能在今晚發佈解決方案,忙着幫助我的候選人 - 加拿大的聯邦選舉。 – 2011-05-03 03:11:03

0

我有你的同樣的問題。我已經添加了System.Web程序集,但沒有添加引用。我在參考文件夾中雙擊了一個裝配體,然後打開一個新選項卡,在這裏我選擇了.net的正確版本,並添加了特定的裝配體版本,並且所有工作都正常。在我的情況下,我使用.net 4.0。我希望能幫助你。

3

我剛纔有這個問題。您可能還需要添加對「System.Web」的引用。這爲我修好了。請記住,不只是「使用」聲明,而是實際添加對它的引用。我在爲我的控制器設置測試項目時遇到了這個問題。

+0

請注意,這適用於我,但我不得不重新加載Visual Studio,有一些東西掛在從先前構建版本的引用。 – Marty 2018-02-27 00:03:36

相關問題