IntelliSense 在 Razor Pages 项目中找不到 ViewComponent Invoke() 方法

Posted

技术标签:

【中文标题】IntelliSense 在 Razor Pages 项目中找不到 ViewComponent Invoke() 方法【英文标题】:IntelliSense cannot find ViewComponent Invoke() method in Razor Pages project 【发布时间】:2021-05-31 23:11:05 【问题描述】:

每次打开项目中的任何 .cshtml 文件时,我都会在 Visual Studio 错误控制台中收到此 IntelliSense 错误消息:

Could not find an 'Invoke' or 'InvokeAsync' method for the view component 'xxxxxxx'

我所有的视图组件中都有 Invoke() 或 InvokeAsync() 方法。当我运行项目时,一切正常,所有视图组件都正确渲染,所以我认为我的代码在这里没有问题。

以前有人在 VS IntelliSense 中遇到过这个问题吗?我正在运行 Microsoft Visual Studio Community 2019 版本 16.8.6,并且项目在 asp.net 5.0 上运行。

【问题讨论】:

我遇到了同样的问题。我有一个基本视图组件类,它的类型参数为 IViewComponentViewModel 抽象。这在基类上实现了 Invoke 方法。然后所有视图组件类都获得了 Invoke 的默认实现。我的项目构建并运行良好。当我打开使用视图组件 的 cshtml 文件时,它显示相同的错误。如果我关闭文件,错误就会消失......不是什么大问题,但令人讨厌和误导...... 【参考方案1】:

我认为由于某些个人步骤,您项目的 Intellisense 已损坏。要解决它,你必须关闭你的项目,删除解决方案文件夹下的.vs隐藏文件夹,binobj文件夹。

之后,重新启动您的项目,我希望您的问题会消失。

【讨论】:

我试过了,但不幸的是这无助于解决问题。不过感谢您的想法。 如果您使用相同的代码创建一个新项目,问题是否再次出现?【参考方案2】:

安装 Visual Studio 2022 后此问题已解决。

【讨论】:

以上是关于IntelliSense 在 Razor Pages 项目中找不到 ViewComponent Invoke() 方法的主要内容,如果未能解决你的问题,请参考以下文章

Razor intellisense在vs2013中不起作用

Intellisense for Xrm.Page in CRM 2011

Razor/JavaScript 和尾随分号

如何在 Razor Page OnInitialized 事件中使用 404 路由

Razor Page中的AJAX

JSON.stringify 作为 Null 传入 Razor-Page