在我的MVC 4应用程序中进行了重大重构后,Razor在调试视图时显示了此错误:
当前上下文中不存在名称“model”。
这是有问题的代码行:
@model ICollection<DataSourceByActive>
我知道@model的用法是正确的。
为什么会这样?我该怎么解决呢?
在我的MVC 4应用程序中进行了重大重构后,Razor在调试视图时显示了此错误:
当前上下文中不存在名称“model”。
这是有问题的代码行:
@model ICollection<DataSourceByActive>
我知道@model的用法是正确的。
为什么会这样?我该怎么解决呢?
当前回答
我在Visual Studio 2019中使用了一个MVC4项目,结果发现VS 2019不支持开箱即用的MVC4。你必须安装这个。
步骤:
打开Visual studio安装程序(在windows中搜索Visual studio安装程序) 单击各个组件 在搜索框中输入“mvc” 检查mvc4-box 点击右下角的“修改”
注意:需要关闭视觉工作室
其他回答
在web中更改下面的行。配置视图文件夹解决了同样的错误。
From
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
To
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
现有的答案都不适合我,但我通过比较不同项目的.csproj文件找到了适合我的答案。下面对.csproj xml文件的手动编辑为我解决了剃刀智能感知问题,也许这可以帮助那些尝试了所有其他答案都无济于事的人。关键是删除<Reference>'s中<Private>False</Private>的任何实例:
<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>
我不知道它们是怎么来的,也不知道它们到底是干什么的,也许比我聪明的人可以补充这些信息。我很高兴终于解决了这个问题。
我在Visual Studio 2019中使用了一个MVC4项目,结果发现VS 2019不支持开箱即用的MVC4。你必须安装这个。
步骤:
打开Visual studio安装程序(在windows中搜索Visual studio安装程序) 单击各个组件 在搜索框中输入“mvc” 检查mvc4-box 点击右下角的“修改”
注意:需要关闭视觉工作室
您可能会在代码中使用一个名为model的变量。
如果你像我一样在项目上不做任何改变, 你需要改变你的网。配置,放置在视图文件夹。 只需通过输入或删除空行写入新行。然后保存你的网络。配置和重建。 我的问题用这个方法解决了