从 ViewComponent 继承而不调用父 ViewComponent
Inherit from ViewComponent without invoke the parent ViewComponent
我正在使用 ASP .Net Core ViewComponent
并且我有一个在组件之间共享的通用函数所以我决定制作一个通用的 ViewComponent
并且所有其他组件都必须继承它
我先试了这个
public class CommonViewComponent: ViewComponent
{
//some methods
}
子组件是这样的
public class SubDealsViewComponent: CommonViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
//calling some methods from the parent
}
}
在这种情况下,我遇到了父组件必须包含Invoke()
或InvokeAsync()
的错误
当我为父组件创建 Invoke() 方法时,我也遇到了这个错误
InvalidOperationException: View component
'Components.SubDealsViewComponent' must have exactly one public method
named 'InvokeAsync' or 'Invoke'.
为了重用成员,您的父视图组件 class 可以声明为 abstract
这样它就不需要 Invoke
或 InvokeAsync
方法定义,像这样:
public abstract class CommonViewComponent: ViewComponent
{
//some methods
}
这是有道理的,否则它可能是一个有效的可用视图组件,但这不是您的目的(直接使用它)。
我正在使用 ASP .Net Core ViewComponent
并且我有一个在组件之间共享的通用函数所以我决定制作一个通用的 ViewComponent
并且所有其他组件都必须继承它
我先试了这个
public class CommonViewComponent: ViewComponent
{
//some methods
}
子组件是这样的
public class SubDealsViewComponent: CommonViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
//calling some methods from the parent
}
}
在这种情况下,我遇到了父组件必须包含Invoke()
或InvokeAsync()
当我为父组件创建 Invoke() 方法时,我也遇到了这个错误
InvalidOperationException: View component 'Components.SubDealsViewComponent' must have exactly one public method named 'InvokeAsync' or 'Invoke'.
为了重用成员,您的父视图组件 class 可以声明为 abstract
这样它就不需要 Invoke
或 InvokeAsync
方法定义,像这样:
public abstract class CommonViewComponent: ViewComponent
{
//some methods
}
这是有道理的,否则它可能是一个有效的可用视图组件,但这不是您的目的(直接使用它)。