CS0234: Mvc не существует в пространстве имен System.Web
Я преобразовал проект веб-формы ASP.net 4 в Asp.net MVC4 в соответствии с главой 13 Профессионального ASP.NET 3.5 MVC, Скоттом Гензельменом, Филом Хааком и Робом Конье, опубликованным Wiley Publishing, Inc. (ISBN: 978-0-470-38461-9). Я также следил за этим блоком . Теперь я могу добавить контроллеры, представления и т.д. Все ссылки заданы правильно. Нет ошибок сборки. Но после запуска преобразованного проекта у меня возникли ошибки компиляции. У меня установлен mvc3 на том же компьютере. Я даже изменил ссылку на это. Он все еще жалуется. Не могли бы вы помочь? Спасибо.
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
Ответы
Ответ 1
Эта проблема может возникнуть при развертывании вашего веб-приложения на сервере, поэтому вы должны проверить, установлен ли вы уже MVC3.
Проверьте, существует ли папка C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3
.
Если этого не существует, вам необходимо установить его из http://www.microsoft.com/en-us/download/details.aspx?id=1491
Если вы хотите установить, вы можете добавить все библиотеки DLL локально в папку bin и добавить ссылки на них, эта работа прекрасна, если вы размещаете на сервере, не развертывайте веб-страницы ASP.NET или MVC3.
Ответ 2
У меня была та же проблема, и я решил ее:
1. Щелкните правой кнопкой мыши и выберите 'Clean Solution'
2.Нажмите 'References'
папку в проводнике решений и выберите ссылку на проблему (в вашем случае это выглядит System.Web.Mvc), а затем щелкните правой кнопкой мыши и нажмите 'Properties'
.
3. В окне свойств убедитесь, что для свойства 'Copy Local'
установлено значение 'True'
Это сработало для меня. Надеюсь, что это сработает для кого-то другого.
Полезная заметка. Как уже упоминалось в комментариях от @Vlad:
Если он уже установлен в значение True:
- Установить False
- Установите True снова
- Перестроить
Ответ 3
Проверьте свой тег runtime внутри web.config и убедитесь, что у вас есть что-то вроде этого:
<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>
Ответ 4
Я пробовал все эти ответы, даже закрыл Visual Studio и удалил все каталоги bin.
После запуска снова ссылка MVC показала на ней желтый восклицательный знак, поэтому я удалил его и снова добавил.
Теперь он работает, без копирования локального.
Ответ 5
Ни один из предыдущих ответов не работал у меня.
Я заметил, что мой проект ссылался на другой проект, используя ссылку System.Web.Mvc
из .NET Framework.
Я просто удалил эту сборку и добавил " Microsoft.AspNet.Mvc" пакет NuGet и исправил мою проблему.
Ответ 6
Вам нужно включить ссылку на сборку System.Web.Mvc в проекте.
у вас может не быть System.Web.Mvc в C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0
Итак, вам нужно добавить его, а затем включить его в качестве ссылки на ваш проект
Ответ 7
добавить пакет Microsoft.AspNet.Mvc nuget.
Ответ 8
У меня была эта проблема, но все приложения в IIS были повреждены, когда они работали ранее. Ни один из отмеченных решений не помог мне. Проблема закончилась тем, что дополнительная копия web.config была представлена в моем корневом каталоге. Я удалил этот файл и проблему.