You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC ViewComponent报错:找不到Invoke或InvokeAsync方法

问题根因

PieViewComponent类的约定入口方法存在拼写错误:你将框架要求的InvokeAsync错写为InvokeAsyc,缺失了字母n,导致ASP.NET Core运行时无法识别到符合规范的ViewComponent执行入口,因此抛出对应异常。

解决方案

直接修正方法名拼写即可,修改后的PieViewComponent代码如下:

public class PieViewComponent : ViewComponent
{
    IPieRepository PieDB;
    public PieViewComponent(IPieRepository PieRepo)
    {
        PieDB = PieRepo;
    }

    // 修正拼写错误:将InvokeAsyc改为InvokeAsync
    public async Task<IViewComponentResult> InvokeAsync()
    {
        List<Pie> items = await PieDB.GetCheapPiesAsync();  
        PieListViewModel pvlm = new PieListViewModel();
        pvlm.Pies = items;
        pvlm.CurrentCategory = "Cheap Pies";

        return View("Pie", pvlm);
    }
}

可选补充修正(避免后续显示问题)

你当前的组件视图代码中输出Pie名称时缺少Razor标记@,运行后会直接显示文本p.Name而非对应变量值,可同步修正:

@model PieListViewModel

<ul class="list-group">
    @foreach (Pie p in Model.Pies)
    {
        <li class="list-group-item">@p.Name</li>
    }
</ul>

内容的提问来源于stack exchange,提问作者darlink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:04