微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

The name ‘model’ does not exist in current context in ASP.NET Core

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

解决方法

新的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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐