2013-02-12 86 views
30

根據Professional ASP.NET 3.5 MVC的第13章,Scott Hanselmen和Phil Haack將ASP.net 4 webform項目轉換爲Asp.net MVC4,以及Rob Conery,由Wiley Publishing,Inc出版(ISBN:978-0-470-38461-9)。我也跟着這blog。現在我可以添加控制器,視圖等。所有的參考都設置正確。沒有生成錯誤。但是在啓動轉換後的項目時,我收到了編譯錯誤。我在同一臺機器上安裝了mvc3。我甚至改變了參考。它仍然抱怨。你能幫忙嗎?謝謝。CS0234:Mvc不存在於System.Web命名空間中

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) 

Source Error: 

Line 109:   <namespaces> 
Line 110:    <add namespace="System.Web.Helpers"/> 
Line 111:    <add namespace="System.Web.Mvc"/> 
Line 112:    <add namespace="System.Web.Mvc.Ajax"/> 
Line 113:    <add namespace="System.Web.Mvc.Html"/> 

Source File: c:\Users\Jon\Documents\Visual Studio 2012\Projects\CMT\Apps\Branches\3.0\Web.config Line: 111 
+0

沒有閱讀文章,編號想知道,你是否添加引用mvc DLL的? – 2013-02-12 01:58:42

回答

8

會發生這個問題,所以你必須檢查你是否已經安裝了MVC3。

檢查文件夾C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3是否存在。

如果它不存在,則需要從http://www.microsoft.com/en-us/download/details.aspx?id=1491


安裝它。如果你不會安裝,你可以在bin文件夾添加本地所有DLL,如果你的主機添加對他們這項工作很好在服務器上不要部署ASP.NET網頁或MVC3。

+1

謝謝!同樣的故事,當它是MVC2:https://www.microsoft.com/en-gb/download/details.aspx?id=22079 – 2016-06-17 12:07:43

6

檢查運行時標記在web.config中,並確認你有這樣的事情宣稱:當您部署Web應用程序服務器

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
..... 
</runtime> 
1

您需要在項目中包含對組件System.Web.Mvc的引用。

你可能沒有System.Web.Mvc在C:\ Program Files文件(x86)的\參考大會\微軟\ Framework.NETFramework \ V4.0

所以你需要添加它,然後包括它作爲您的projrect

0

我有這個問題,但所有在IIS中的應用程序已被破壞,當他們以前一直工作。沒有標記的解決方案對我有幫助。這個問題最終成爲一個額外的web.config副本已被引入到我的根目錄。我刪除了該文件,並解決了問題。

75

我有同樣的問題,我曾與解決它:

1.右鍵單擊解決方案,然後單擊解決方案資源管理'Clean Solution'

2.Click 'References'文件夾並選擇問題引用(在你的情況它似乎System.Web.Mvc),然後右鍵單擊並單擊'Properties'

3.In屬性窗口,請確保'Copy Local'屬性設置爲'True'

這爲我工作。希望它能爲別人

有用注意:由於它已經在@Vlad評論中提到:

如果它已經被設置爲True:

  1. 將其設置假
  2. 套裝它再次真實
  3. 重建
+8

在我的情況下,它被設置爲複製本地= true,但由於某種原因DLL不是那裏。我只是將它設置爲false,然後返回true>重建。有幫助。 – 2014-10-17 13:56:02

+3

剛纔有這個問題,這完美的工作! – HTX9 2014-10-18 01:08:01

+3

但是...爲什麼你必須這樣做?我剛剛創建了一個空的mvc項目(vs 2013),並且必須這樣做才能使其工作。這意味着默認情況下,您在Visual Studio中啓動的項目不起作用。這怎麼會溜走? – zod 2014-11-05 19:12:05

3

我試過所有t這些答案甚至關閉了Visual Studio並刪除了所有的bin目錄。

再次啓動後,MVC參考文件上似乎有一個黃色感嘆號,所以我將其刪除並重新添加。

現在它工作,沒有本地複製。

+1

同樣的情況在這裏!謝謝! – Santiago 2016-10-15 21:53:11

3

以前的答案都不適合我。

我注意到我的項目使用.NET Framework的System.Web.Mvc引用引用了另一個項目。

我剛剛刪除該程序集並添加了「Microsoft.AspNet.Mvc」NuGet軟件包,並解決了我的問題。

1

添加Microsoft.AspNet.Mvc nuget包。

相關問題