Ahm*_*mad 0 c# asp.net-core asp.net-core-viewcomponent
什么是调用方法?
下面是我的viewcomponent()方法。
public IViewComponentResult Invoke()
{
ViewBag.SelectedCategory = RouteData?.Values["category"];
return
View(repository.Products.Select(x=>x.Category).Distinct().OrderBy(x=>x));
}
Run Code Online (Sandbox Code Playgroud)
这是匿名函数吗?
这个函数的名字是什么?
我试图用“func”更改“Invoke”,但没有语法错误,但发生了运行时错误。
是否可以在单个视图组件类中具有多个具有“调用”名称并接收不同参数的方法。
我知道视图组件用于为此呈现部分视图,我们使用 helper 就是这个
@await Component.InvokeAsync("Here is the name of your view component")
Run Code Online (Sandbox Code Playgroud)
"component.InvokeAsynk"去你的组件类,找到 Invoke 方法,然后按照这个方法
的Invoke和InvokeAsync方法上的ViewComponent是定义视图分量的逻辑方法。这些不是匿名函数。它们是常规的 c# 方法,仅具有名称Invoke和InvokeAsync.
您不需要在视图组件中同时定义它们,定义其中之一就足够了。如果你只有一个,假设Invoke你将它重命名为 ,func那么你已经改变了方法的名称,虽然你不会得到编译器错误,但是当你运行你的代码时会发生运行时错误,因为 Asp.调用您的视图组件的 Net Core 框架代码期望它具有InvokeorInvokeAsync方法,而您ViewComponent现在两者都没有。
您可以将您的视图组件命名为任何您喜欢的名称,但调用它的方法的名称必须是Invoke或InvokeAsync。
AViewComponent只能有一个Invoke或InvokeAsync方法。AViewComponent不能两者兼有,也不能是任何一个的倍数(具有不同的参数)。尝试这样做会产生以下运行时错误:
视图组件“ViewComponents.NameOfComponent”必须只有一个名为“InvokeAsync”或“Invoke”的公共方法。