我正在使用mvc core 2.0项目,但是视图组件无法正常工作。
我收到此错误
InvalidOperationException:无法为视图组件找到“Invoke”或“InvokeAsync”方法
[ViewComponent(Name = "Footer")]
public class FooterViewComponent : ViewComponent
{
public ViewViewComponentResult Invoke()
{
var model = new FooterModel();
return View(model);
}
}
答案 0 :(得分:1)
将Invoke的返回类型更改为IViewComponentResult
:
[ViewComponent(Name = "Footer")]
public class FooterViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
var model = new FooterModel();
return View(model);
}
}
并在视图中使用它:@await Component.InvokeAsync(typeof(FooterViewComponent))
我正在使用ASP.Net Core 2.0,视图组件对我来说很好。
答案 1 :(得分:0)
在我的实现中,视图组件的Invoke方法必须是Async方法,并且应该返回Task作为输出。这就是它对我有用的方式:
我的视图组件:
public class XTestEntityViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync(int id)
{
// Put your stuff here . . .
}
}
您可以从应用程序的任何视图访问它,如下所示:
@await Component.InvokeAsync("XTestEntity", new { id = 4 })
我希望这会有所帮助