После значительного рефакторинга в моем MVC-приложения 4, и бритва показывает эту ошибку при виды отладки:
и GT;имя 'модели' не существует в текущем контексте.
Это ошибочная строка кода:
@model ICollection<DataSourceByActive>
Я знаю, что использование@модель является правильным.
Почему это происходит? Как я могу это исправить?
Я думаю, что у вас перепутались в интернете.файл конфигурации, который живет в папке Views.
Создание нового проекта для того же .NET и скопировать его на веб.файл config на тот, что в текущий проект. Это будет исправить вашу проблему.
Также, как Dudeman3000 прокомментировал, если у вас есть области в проект MVC, все они имеют `вид веб.конфиг слишком файлов.
Убедитесь, что у вас есть в вашем сайте в Интернете.config и представления каталогов в Интернете.configв разделе
параметр appsettings`
<add key="webpages:Version" value="2.0.0.0" />
Для MVC5 использовать:
<add key="webpages:Version" value="3.0.0.0" />
(И она существует только в основном веб.файл config`.)
Вот что я сделал:
Интернет .suo файл-скрытый файл в той же папке .файл решения SVN и содержит параметры Visual пользователя Studio.
У меня была такая же проблема, я создал новый проект и скопировал в интернете.конфигурационные файлы, как рекомендовано в ответе на Гупта, но это'т исправить вещи для меня. Я проверил ответ Алекс и Лиам, я думал, что эта линия должна быть скопирован с нового веб.config, но сам выглядит, как новый проект не'т иметь эту линию (MVC5):
<add key="webpages:Version" value="3.0.0.0" />
Добавив строку в вид/веб.файл config решена проблема для меня.
Изменив следующую строку в web.конфиг папок решена та же ошибка.
От
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Для
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
В моем случае, недавно я обновил от MVC 4 в MVC 5, который напортачит в интернете.конфиг довольно плохо. Эта статья очень помогла.
Суть в том, что вы должны проверить все ваши версии ссылки в интернете.конфигурация и вид/веб.config, чтобы убедиться, что они не имеют ссылок на правильные обновленные версии, связанные с MVC 5.
Изменения к @модели @Модель сделали для меня.
@модель представляет собой вид модель тип объекта. @Модель представляет собой объект модели представления.
Я'вэ нашел решение. Если вы хотите обновить версию бритвы или MVC 4 до 5, изменить некоторые линии.
Старый код в вид/веб.конфиг
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
Заменить
<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>
строки sectiongroup
должны меняться тоже.
В моем случае, следующий код находит, чтобы быть полезным. Место ниже код в Интернете.конфигурационный файл под видом папки.
<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>
После того, как код обновляется, убедитесь, чтобы очистить и перестроить решение. Я надеюсь, что это поможет вам!
Ни один из существующих ответов работал для меня, но я нашел то, что *сделал *** работа для меня, сравнивая.csproj файл файлы различных проектов. Следующий ручного редактирования .csproj файл
XML-файл решена бритвой-технология IntelliSense проблема для меня, может быть, это может помочь кому-то, кто пробовал все остальные варианты ответов не дали. Ключ, чтобы удалить все экземпляры в <частная>ложные</индивидуальная>
в в <ссылка>
'ы:
в
<ItemGroup>
<Reference Include="Foo">
<Hintpath>path\to\Foo</Hintpath>
<!-- <Private>False</Private> -->
</Reference>
<Reference Include="Bar">
<Hintpath>path\to\Bar</Hintpath>
<!-- <Private>True</Private> -->
</Reference>
</ItemGroup>
Я не'т знаю, как сюда попала и что именно они делают, может быть, кто-то умнее меня сможет добавить эту информацию. Я был просто счастлив, наконец, решить эту проблему.
Почему моя веб.конфиг был 0.0.0.0 в атрибуте старую версию:
<runtime>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</runtime>
изменение 1.0.0.0 решение:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
Для того, чтобы решить эту я убедился, что я обновлен до последней версии MVC с помощью NuGet и консоли диспетчера пакетов.
Установка Пакета Microsoft.Паш.В MVC -Версии 5.2.4
Затем обновлена до последней версии бритвы
Установка Пакета Microsoft.Паш.Бритва -Версии 3.2.4
Затем я изменил все в интернете.config файлы, чтобы отразить изменение. Как вы увидите ниже:
В основном веб.файл конфигурации, убедитесь, что веб-страницы:версия верна. Это где это можно найти (игнорировать другие ключи):
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
</configuration>
Потом искать другие варианты, перечисленные в сборки, проверить версию сборки против версии библиотеки, перечисленные в проекте ссылки! Вам не нужно все это.
<system.web>
<compilation debug="true" targetFramework="4.6">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Helpers, Version=3.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.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
</system.web>
Во время выполнения assemblyBinding должны показать, что "новаяверсия" Ну как же, увидеть, где он читает Новаяверсия 5.2.4.0? А также проверить все другие версии.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.2.4.0" newVersion="5.2.4.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Затем в веб.Раздел конфигурации, убедитесь, что бритва-это правильная версия:
<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>
<configuration>
И Lastlt есть раздел страницы веб-представления.Конфиг
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
У меня была такая же проблема при развертывании в Службе приложений Azure
В моем случае это было потому, что ~/вид/веб.конфиг был'т включены в проект.
Он работал в IIS Express, но когда я развертывания в Azure, я получил ту же ошибку. Не входит в состав .файл csproj, это было'т развернуто.
Решение является обеспечение ~/вид/веб.конфигурации включена в проект.
Если вы идете в обозревателе решений и нажмите на "Показать все файлы и" значок, затем откройте вид можно увидеть unincluded Интернете.файл config там.
Добавьте его в, переиздать, и Боб's ваш дядя.
В моем случае, проблема была в том, что после обновления проекта от MVC 4 в MVC 5 и я как-то пропустил изменение версии в вид/веб.конфиг:
<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">
Это еще старая версия 2.0.0.0. После изменения версии 3.0.0.0 все начало работать правильно.
Кроме того, из-за этого проблема, в Visual Studio 2015 г общий выпуск начнется трепка процессора (30-40% потребление на холостом ходу) каждый раз, когда я хотел открыть .cshtml файл.
Для меня этот вопрос был конфликтным .Net версии в одной из библиотек, которые я недавно импортированы. В библиотеке я импортировал был составлен для 4.5.2 и на сайте MVC ASP.NET я импортировал его в адресной 4.5. После перекомпиляции сказал Либ за 4,5 на веб-сайте будет comppile.
Кроме того, не было никаких ошибок компиляции, но вопрос был сообщается как на "предупреждение" по. Так что обязательно прочтите все предупреждения, если таковые имеются.
В моем случае мне не хватает @ в начале командлет foreach
@foreach (var item in Model)
{
<tr class="clickable-row">
<td class="clickable-field">
@Html.DisplayFor(modelItem => item.Label)
</td>
<td class="clickable-field hidden-xs">
@Html.DisplayFor(modelItem => item.Value)
</td>
</tr>
}
Я пытался добавить мнение, которое были за пределами моего "на вид" в папке (только, чтобы организовать мой код по-разному, я думаю), когда у меня была эта проблема. Создание вида в вид (как в Конвенции) ее решили.
если вы принимаете эту проблему без каких-либо изменений на ваш проект, как мне, вам нужно изменить свой веб.config, который помещается в папку посмотреть. просто написать новую строку по Enter или удалить пустую строку . затем сохраните вашу веб.конфигурации и перестроить. моя проблема решена с этим решением
Я решил проблему с помощью @модель
вместо модель
при печати переменных.