在我的MVC 4应用程序中进行了重大重构后,Razor在调试视图时显示了此错误:
当前上下文中不存在名称“model”。
这是有问题的代码行:
@model ICollection<DataSourceByActive>
我知道@model的用法是正确的。
为什么会这样?我该怎么解决呢?
在我的MVC 4应用程序中进行了重大重构后,Razor在调试视图时显示了此错误:
当前上下文中不存在名称“model”。
这是有问题的代码行:
@model ICollection<DataSourceByActive>
我知道@model的用法是正确的。
为什么会这样?我该怎么解决呢?
当前回答
已经7年了。然而,我的情况有点不同。
所有的视图都工作正常。因此,改变网络。Config和nuget获取新库将无法工作,这可能会导致问题。
我的场景是我一直在做项目B,项目B是项目a的克隆,长话短说,很多时间,为了节省时间,我不得不从项目B复制代码到项目a。
这一次,我只复制了文件abc。cshtml,从项目B到项目A。项目B使用2015年开发。出于某种原因,这引起了问题。我不知道。总之,我去掉了abc。CSHTML并创建空白abc。CSHTML从头开始。然后我选择abc上的每一个东西。并将所有文本复制到项目A新创建的abc.cshtml中。
我的问题解决了
其他回答
在我的案例中,问题是在将项目从MVC 4升级到MVC 5之后,我不知为何错过了Views/web.config中的版本更改:
<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 Community Edition每次打开.cshtml文件时都会开始敲打CPU(空闲时占用30-40%)。
以下是我所做的:
关闭Visual Studio 删除SUO文件 重启Visual Studio
“.suo”文件是一个隐藏文件,与“.svn”解决方案文件位于同一文件夹中,包含Visual Studio用户选项。
如果你像我一样在项目上不做任何改变, 你需要改变你的网。配置,放置在视图文件夹。 只需通过输入或删除空行写入新行。然后保存你的网络。配置和重建。 我的问题用这个方法解决了
我有同样的问题,我创建了一个新的项目,并复制了网络。在Gupta的回答中推荐配置文件,但这并没有为我解决问题。我检查了Alex和Liam的答案,我认为这一行一定是从新网页上复制的。config,但它看起来像新项目本身没有这一行(MVC5):
<add key="webpages:Version" value="3.0.0.0" />
添加一行到views/web。配置文件解决了我的问题。
我通过使用@Model而不是仅仅在打印变量时使用model解决了这个问题。