繁体   English   中英

什么是 Invoke 和 InvokeAsync 方法?

[英]What are Invoke & InvokeAsync methods?

什么是调用方法?

下面是我的viewcomponent()方法。

public IViewComponentResult Invoke()
{
 ViewBag.SelectedCategory = RouteData?.Values["category"];
return 
View(repository.Products.Select(x=>x.Category).Distinct().OrderBy(x=>x));
}

这是匿名函数吗?

这个函数的名字是什么?

我试图用“func”更改“Invoke” ,但没有语法错误,但发生了运行时错误。

是否可以在单个视图组件类中具有多个具有“调用”名称并接收不同参数的方法。

我知道视图组件用于为此呈现部分视图,我们使用 helper 就是这个

 @await Component.InvokeAsync("Here is the name of your view component")

"component.InvokeAsynk"去你的组件类,找到 Invoke 方法,然后按照这个方法

InvokeInvokeAsync上的方法ViewComponent是定义视图分量的逻辑方法。 这些不是匿名函数。 它们是常规的 c# 方法,仅具有名称InvokeInvokeAsync

您不需要在视图组件中同时定义它们,定义其中之一就足够了。 如果你只有一个,比如说Invoke ,然后你将它重命名为func那么你已经改变了方法的名称,虽然你不会得到编译器错误,但是当你运行你的代码时会发生运行时错误,因为调用您的视图组件的 Asp.Net Core 框架代码期望它具有InvokeInvokeAsync方法,而您的ViewComponent现在两者都没有。

您可以将您的视图组件命名为任何您喜欢的名称,但被调用以调用它的方法的名称必须称为InvokeInvokeAsync

一个ViewComponent只能有一个InvokeInvokeAsync方法。 一个ViewComponent不能同时拥有两者,也不能是其中之一的倍数(具有不同的参数)。 尝试这样做会产生以下运行时错误:

视图组件“ViewComponents.NameOfComponent”必须只有一个名为“InvokeAsync”或“Invoke”的公共方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM