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

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

这是有问题的代码行:

@model ICollection<DataSourceByActive>

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

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


当前回答

对我来说,问题是我最近导入的一个库中的. net版本冲突。我导入的库是为4.5.2和ASP。NET MVC站点我把它导入了目标4.5。重新编译后说库4.5网站将编译。

此外,没有编译错误,但这个问题被报告为“警告”。因此,如果有任何警告,请务必阅读所有警告。

其他回答

我觉得你把网络搞砸了。config文件,它位于Views文件夹中。

创建一个新的项目,目标是相同的。net框架,并复制它的Views/web。配置文件的顶部在您的当前项目。这将解决你的问题。

此外,正如Dudeman3000评论的那样,如果你的MVC项目中有区域,它们都有视图\web。配置文件。

对我来说,问题是我最近导入的一个库中的. net版本冲突。我导入的库是为4.5.2和ASP。NET MVC站点我把它导入了目标4.5。重新编译后说库4.5网站将编译。

此外,没有编译错误,但这个问题被报告为“警告”。因此,如果有任何警告,请务必阅读所有警告。

我在nopCommerce中遇到了这个问题,我将插件的视图部分复制到nopCommerce \Plugins下的输出文件夹中,但视图需要是一个嵌入式资源。因此,.csthml文件的错误构建操作是“内容”,而它应该是“嵌入式资源”,不需要复制。

您可能会在代码中使用一个名为model的变量。

把@Model改成@Model对我来说很管用。

@model表示视图模型对象类型。@Model表示视图模型对象。