Cha*_*hau 4 c# razor asp.net-core-viewcomponent 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"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
视图部分在这里(/Pages/Components/Menu/Default.cshtml):
<div>Menu</div>
Run Code Online (Sandbox Code Playgroud)
我从文件中调用菜单,_Layout.cshtml如下所示:
@await Component.InvokeAsync("MenuViewComponent");
Run Code Online (Sandbox Code Playgroud)
查看页面时,我收到以下错误消息:
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'.
Run Code Online (Sandbox Code Playgroud)
问题:
为了让它正常工作,我缺少什么?
确保组件视图位于搜索路径中,如下所述
并且在调用组件时只需使用不带后缀的名称
@await Component.InvokeAsync("Menu")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5049 次 |
| 最近记录: |