gpt4 book ai didi

c# - 使用 Razor Pages 在 Asp.NET Core 2.2 中找不到 ViewComponent

转载 作者:行者123 更新时间:2023-12-05 02:59:45 25 4
gpt4 key购买 nike

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

namespace MySite.ViewComponents
{
public class MenuViewComponent : ViewComponent
{
public Task<IViewComponentResult> InvokeAsync()
{
return Task.FromResult((IViewComponentResult)View("Default"));
}
}
}

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

<div>Menu</div>

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

@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'.

问题:
我缺少什么才能使它正常工作?

最佳答案

确保组件 View 位于搜索路径中,如下所述

引用 View components in ASP.NET Core

并且在调用组件时只需使用不带后缀的名称

@await Component.InvokeAsync("Menu") 

关于c# - 使用 Razor Pages 在 Asp.NET Core 2.2 中找不到 ViewComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57609841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com