Вызов компонента представления в качестве вспомогательной функции тега был представлен в ASP.NET Core 1.1. (См. «Вызов компонента представления в качестве вспомогательной функции тега»). Но следующее возвращает только часть представления Test for VC. Кажется, что часть <vc:annual-orders>…</vc:annual-orders>
вообще не вызывается.
Views \ Shared \ Components \ AnnualOrders \ Default.cshtml:
@{
Layout = "";
}
<div>Test for VC</div>
<div>
<vc:annual-orders>
</vc:annual-orders>
</div>
myProj \ ViewComponents \ AnnualOrdersViewComponent.cs:
public class AnnualOrdersViewComponent : ViewComponent
{
private readonly OrdersContext _context;
public AnnualOrdersViewComponent(OrdersContext context)
{
_context = context;
}
public async Task<IViewComponentResult> InvokeAsync()
{
var lastOrders = _context.Where(t => t.orderType == "new");
return View(await lastOrders);
}
}
ЗАМЕТКА:
- Я использую ASP.NET Core 1.1, и компоненты представления без вспомогательных функций тегов работают нормально.
- Я также следил за официальным руководством MSDN «Вызов компонентов представления в качестве помощников тегов», где объясняется, что имена классов PascalCase и параметры методов для вспомогательных функций тегов переводятся в их нижний kebab-case.