首页 文章

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

提问于
浏览
5

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

ASP.NET Core中的当前上下文中不存在名称“model”

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

1 回答

  • 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视图 . Change the SDK 在您的 plugin library 到Web .

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

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

相关问题