Имя "модель" не существует в текущем контексте ASP.NET MVC5
я кодирую плагин для NopCommerce 3.2, и в представлениях я получаю ошибку, упомянутую выше, но также и для "макета" и "Html". Я скопировал ту же самую сеть.Config, который работает в другом плагине. Я также добавил те же ссылки, что и в рабочем плагине. При компиляции плагин работает, но у меня нет intellisense и я не могу доверять, что VisualStudio правильно отмечает ошибки. Я использую профессиональное обновление VS2013 1.
здесь сети.Конфиг файл:
<?xml version="1.0" encoding="utf-8"?>
<!-- We use this file to make razor intellisense work in the class library -->
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation targetFramework="4.5" />
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="Nop.Web.Framework.ViewEngines.Razor.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
EDIT: Извините, если вы нашли этот вопрос не исследованным, но я уверяю вас, что потратил часы, чтобы попытаться найти решение (включая те вопросы, которые я нашел здесь, в stackoverflow, которые похожи и указывают на веб-сайт.config как проблема, по которой я включил этот файл в свой вопрос), но не могу его найти.
10 ответов
эта ошибка, вероятно, была вызвана Resharper. Мы команда из трех разработчиков, использующих GIT. Один из нас установил Resharper, и это, вероятно, вызвало ошибку для двух других из нас. Когда мы установили ReSharper trial, он внезапно снова сработал. К сожалению, он не работает при удалении Resharper снова...
попробуйте добавить этот раздел в система.сеть. (Убедитесь, что версии, которые я добавил, действительно те, которые вы используете)
<compilation targetFramework="4.5">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
закрыть .просмотр файлов cshtml. Перестроить проект. И откройте их снова.
Un-установка пакета project MVC Nuget и переустановка его исправили его для меня. Мой был испорчен, когда я изменил .net-версию проекта.
убедитесь, что пространство имен, определенное в представлении, совпадает с пространством имен модели.
Если вы измените свойства проекта на target 4.5.1,
targetFramework во многих других местах по-прежнему будет говорить 45
вы можете найти targetFramework 3-4 раз в корневой сети.конфиг и во всех видах пакетов.конфиг.
У меня была такая же проблема, измените проект на target 4.5, и он прояснился.
лучше не целиться 4.5.1
изменить Выход Проекта путь /bin
на Все Конфигурации на Свойства Проекта. Это странно, но кажется, когда VS Выход Проекта толкнул /bin/Debug
или /bin/Release
intellisense полностью сломан.
Я испытал ту же ошибку в моем проекте MVC 5. Моим делом была паутина.папка config in Views Как-то не была опубликована. Добавление его обратно решило проблему.
У меня была такая же ошибка и просто поменяли к
Я просто пытаюсь получить cshtml intellisense в консольном приложении, чтобы он работал для меня, чтобы вернуться к стандартной базовой веб-странице.
Я свой случай, я должен был сброс кэша компонентов Visual Studio закрыв Visual Studio и удалив эту папку:
C:\Users\[имя пользователя]\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache