Подтвердить что ты не робот

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 
4b9b3361

Ответ 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 была представлена ​​в моем корневом каталоге. Я удалил этот файл и проблему.