名称'模型'在ASP.NET Core中的当前上下文中不存在

时间:2017-04-19 14:43:54

标签: razor asp.net-core visual-studio-2017

我正在尝试使用ASP.NET Core开发一个带插件的网站。我有我的主项目,asp.net web应用程序工作正常。我有一个带有控制器的类库项目,它也可以正常工作,并且我遇到了问题。当我打开* .cshtml文件时,我可以看到Razor无法正常工作 - @using,@ model和其他指令无法识别,智能感知不起作用。当我将鼠标悬停在模型I上时,给出了标题中的错误:

  

名称'型号'在ASP.NET Core

中的当前上下文中不存在

我使用EmbeddedFileProvider来发现视图,并将它们标记为嵌入式资源。当我运行应用程序一切正常 - 视图正确呈现。我唯一的问题是Visual Studio中的误报错误。我用谷歌搜索和类似的问题,但主要是为了ASP.NET MVC,而不是核心 - like here。我认为类库配置中缺少某些东西,但我不确定究竟是什么。

1 个答案:

答案 0 :(得分:11)

新的csproj文件在顶层“Project”元素中有一个“Sdk”属性。创建新的Web应用程序时,会将其设置为“Web”SDK:

<Project Sdk="Microsoft.NET.Sdk.Web">...</Project>

添加/创建类库时,默认为标准的非Web SDK:

<Project Sdk="Microsoft.NET.Sdk">...</Project>

据我所知,Web SDK导入了其他任务,以允许设计时处理Web资源,例如Razor视图。 插件库中的SDK 更改为Web。

“Web”项目的另一个参数是它默认输出一个EXE,所以也将它添加到你的插件csproj中:

<PropertyGroup>
    <OutputType>Library</OutputType>
</PropertyGroup>