C# Razor中的当前上下文中不存在名称“Model”
首先,我已经阅读了所有关于这个问题的问题 是,我已在包含视图的文件夹中选中/删除了我的web.config文件 是的,同一文件夹中还有其他视图,没有问题 是的,在与我的模型名称空间相同的名称空间中还有其他类,但是不管是哪个类,我都会遇到这个错误 是的,我已经清洗了溶液 是的,我重新启动了Visual Studio 是的,我正在使用Visual Studio的最新版本2015更新2 不,我对Razor页面、语法、web.config等没有任何幻想 不,我没有任何VisualStudio插件 无论我尝试什么,VisualStudio总是告诉我,模型在当前上下文中不存在,只存在于特定文件中。在同一文件夹中还有其他cshtml文件与此文件相同,其中许多文件具有来自同一文件夹的强类型模型,具有相同的保护级别,并且它们都工作正常。问题仅存在于文件的开头:C# Razor中的当前上下文中不存在名称“Model”,c#,asp.net-mvc,visual-studio,razor,visual-studio-2015,C#,Asp.net Mvc,Visual Studio,Razor,Visual Studio 2015,首先,我已经阅读了所有关于这个问题的问题 是,我已在包含视图的文件夹中选中/删除了我的web.config文件 是的,同一文件夹中还有其他视图,没有问题 是的,在与我的模型名称空间相同的名称空间中还有其他类,但是不管是哪个类,我都会遇到这个错误 是的,我已经清洗了溶液 是的,我重新启动了Visual Studio 是的,我正在使用Visual Studio的最新版本2015更新2 不,我对Razor页面、语法、web.config等没有任何幻想 不,我没有任何VisualStudio插件 无论我
怎么了?在发布问题时,我已经找出了错误。这是由于VisualStudio糟糕的Razor语法解析造成的 由于模型可能为空,我将其分配给一个新变量,如果为空,我将创建一个无法直接分配给模型的新实例,因为它是只读的,并且变量的名称为Model:
无论如何。我使用的是那个模型实例,它被保证为非null并且有一些值。下面,我正在使用,Razor认为当它看到@model时,我正在为页面声明一个新的模型类型,而@model用于转义到C中,model是我的变量名。我已经将可变模型更改为m或其他任何不是关键字的模型,问题就消失了。在发布问题时,我已经找出了错误。这是由于VisualStudio糟糕的Razor语法解析造成的 由于模型可能为空,我将其分配给一个新变量,如果为空,我将创建一个无法直接分配给模型的新实例,因为它是只读的,并且变量的名称为Model: 无论如何。我使用的是那个模型实例,它被保证为非null并且有一些值。下面,我正在使用,Razor认为当它看到@model时,我正在为页面声明一个新的模型类型,而@model用于转义到C中,model是我的变量名。我已将Variable model更改为m或其他任何不是关键字的选项,问题就消失了。@model是用于指定模型类型的保留字 使用@Model获取实例 在您的情况下,只需为变量使用另一个名称。@model是用于指定模型类型的保留字 使用@Model获取实例 在您的情况下,只需为变量使用另一个名称。来自的解决方案适用于我: 以管理员身份运行VS 然后跑 卸载软件包-Id Microsoft Web Helpers 然后: 安装包-Id Microsoft.AspNet.WebHelpers来自的解决方案适用于我: 以管理员身份运行VS 然后跑 卸载软件包-Id Microsoft Web Helpers 然后:
安装包-Id Microsoft.AspNet.WebHelpers@CharlesMager您看不到代码的开头吗?请仔细阅读,模型已分配。@CharlesMager难道看不到代码的开头吗?请仔细阅读,型号已指定。
var model = Model;
if(model == null) {
model = ...
}