Keh*_*mme 180 asp.net-mvc razor asp.net-mvc-4
在我的MVC 4应用程序中进行了重大的重构之后,Razor在调试Views时显示了这个错误:
当前上下文中不存在名称"model".
这是令人讨厌的代码行:
@model ICollection<DataSourceByActive>
Run Code Online (Sandbox Code Playgroud)
我知道使用@model
是正确的.
为什么会这样?我该如何解决?
Ani*_*pta 230
I think you have messed up the web.config file which lives in the Views folder.
Create a new project targeting the same .NET framework and copy its Views/web.config file on top of the one in your current project. This will fix your problem.
另外,正如Dudeman3000评论的那样,如果你的MVC项目中有区域,那么它们也都有Views\web.config
文件.
小智 97
确保Web.config
在该Web.config
部分的站点web.config和views目录中包含以下内容
<add key="webpages:Version" value="2.0.0.0" />
Run Code Online (Sandbox Code Playgroud)
对于MVC5使用:
<add key="webpages:Version" value="3.0.0.0" />
Run Code Online (Sandbox Code Playgroud)
(它只存在于主Web.config文件中.)
Mar*_*iss 47
这是我做的:
.suo文件是与.svn解决方案文件位于同一文件夹中的隐藏文件,包含Visual Studio用户选项.
小智 25
我遇到了同样的问题,我创建了一个新项目,并按照Gupta的回答中的建议复制了web.config文件,但这并没有为我解决问题.我检查了Alex和Liam的回答,我认为这行必须是从新的web.config复制的,但看起来新项目本身没有这行(MVC5):
<add key="webpages:Version" value="3.0.0.0" />
Run Code Online (Sandbox Code Playgroud)
将该行添加到views/web.config文件为我解决了这个问题.
vin*_*gde 15
更改视图文件夹的web.config中的以下行解决了相同的错误.
从
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)
至
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)
Jus*_*les 10
在我的情况下,我最近从MVC 4更新到MVC 5,这搞砸了web.config非常糟糕.这篇文章帮助很大.
最重要的是,您需要检查web.config和Views/web.config中的所有版本号引用,以确保它们引用与MVC 5关联的正确升级版本.
我找到了解决方案.如果要更新剃刀版本或mvc 4到5,请更改一些行.
Views/web.config中的旧代码
<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>
Run Code Online (Sandbox Code Playgroud)
替换为
<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>
Run Code Online (Sandbox Code Playgroud)
sectionGroup
也必须改变.
我在 Visual Studio 2019 中使用了 MVC4 项目 - 结果发现 VS 2019 不支持开箱即用的 MVC 4。你必须安装这个。
脚步:
注意:需要关闭视觉工作室
在我的例子中,以下代码有用.将下面的代码放在Views文件夹下的Web.config文件中.
<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>
Run Code Online (Sandbox Code Playgroud)
代码更新后,请确保清理并重建解决方案.我希望这会帮助你!
现有的答案都不为我工作,但我找到了做比较的工作对我来说.csproj
不同的项目文件。以下对.csproj
XML 文件的手动编辑为我解决了 Razor-intellisense 问题,也许这可以帮助那些尝试了所有其他答案但无济于事的人。关键是删除's<Private>False</Private>
中的任何实例<Reference>
:
<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>
Run Code Online (Sandbox Code Playgroud)
我不知道那些人是如何到达那里的,也不知道他们究竟做了什么,也许比我更聪明的人可以添加这些信息。我很高兴终于解决了这个问题。
归档时间: |
|
查看次数: |
153681 次 |
最近记录: |