在我的MVC 4应用程序中进行了重大重构后,Razor在调试视图时显示了此错误:

当前上下文中不存在名称“model”。

这是有问题的代码行:

@model ICollection<DataSourceByActive>

我知道@model的用法是正确的。

为什么会这样?我该怎么解决呢?


当前回答

确保在你的网站上都有以下内容。配置和视图目录Web。在appSettings部分配置

<add key="webpages:Version" value="2.0.0.0" />

MVC5使用:

<add key="webpages:Version" value="3.0.0.0" />

(而且它只存在于主Web中。配置文件)。

其他回答

我有同样的问题,我创建了一个新的项目,并复制了网络。在Gupta的回答中推荐配置文件,但这并没有为我解决问题。我检查了Alex和Liam的答案,我认为这一行一定是从新网页上复制的。config,但它看起来像新项目本身没有这一行(MVC5):

<add key="webpages:Version" value="3.0.0.0" />

添加一行到views/web。配置文件解决了我的问题。

以下是我所做的:

关闭Visual Studio 删除SUO文件 重启Visual Studio

“.suo”文件是一个隐藏文件,与“.svn”解决方案文件位于同一文件夹中,包含Visual Studio用户选项。

如果你像我一样在项目上不做任何改变, 你需要改变你的网。配置,放置在视图文件夹。 只需通过输入或删除空行写入新行。然后保存你的网络。配置和重建。 我的问题用这个方法解决了

在我的例子中,我删除了web。配置文件不小心从视图文件夹。我把它加回来了,没问题。

确保在你的网站上都有以下内容。配置和视图目录Web。在appSettings部分配置

<add key="webpages:Version" value="2.0.0.0" />

MVC5使用:

<add key="webpages:Version" value="3.0.0.0" />

(而且它只存在于主Web中。配置文件)。