使用 Razor Pages 在 Asp.NET Core 2.2 中找不到

我创建了一个非常简单的视图组件(/ViewComponents/MenuViewComponent.cs):


namespace MySite.ViewComponents

{    

    public class MenuViewComponent : ViewComponent

    {

        public Task<IViewComponentResult> InvokeAsync()

        {

            return Task.FromResult((IViewComponentResult)View("Default"));

        }

    }

}

视图部分在这里(/Pages/Components/Menu/Default.cshtml):


<div>Menu</div>

我从文件中调用菜单,_Layout.cshtml如下所示:


@await Component.InvokeAsync("MenuViewComponent");

查看页面时,我收到以下错误消息:


InvalidOperationException: A view component named 'MenuViewComponent' could not be found.

A view component must be a public non-abstract class, not contain any generic parameters, 

and either be decorated with 'ViewComponentAttribute' or have a class name ending with the 'ViewComponent' suffix. 

A view component must not be decorated with 'NonViewComponentAttribute'.

问题:

为了让它正常工作,我缺少什么?


一只斗牛犬
浏览 63回答 1
1回答

繁华开满天机

确保组件视图位于搜索路径中,并且在调用组件时只需使用不带后缀的名称@await Component.InvokeAsync("Menu")
打开App,查看更多内容
随时随地看视频慕课网APP