Я пытаюсь завершить повторяющиеся фрагменты HTML в ASP MVC Core 2.1, используя ViewComponents .
Помощники тегов делают это на первый взгляд простым:
<vc:expansion-panel title="Headline">
content.....
</vc:expansion-panel>
Однако: Внутренний HTML-код тега не отображается.RenderBody()
здесь явно не подходящая функция.Итак, какую функцию следует использовать?
Поскольку я не нашел никаких ссылок в Интернете, вероятно, я неправильно понял представление о ViewComponents.Однако, даже если это так, я все равно не вижу причин, почему бы не отображать внутренний HTML в ViewComponent
.
Вопрос: Как отобразить внутренний HTML <vc:expansion-panel>...
вViewComponent
?
@addTagHelper *, ProjectName
ExpansionPanelViewComponent.cs
using Microsoft.AspNetCore.Mvc;
namespace ProjectName.Components
{
public class ExpansionPanelViewComponent : ViewComponent
{
public IViewComponentResult Invoke(string title)
{
ViewData["Title"] = title;
return View();
}
}
}
Default.cshtml
<h2 class="panel">@ViewData["Title"]</h2>
<div class="panel">
@RenderBody() <----- ??
</div>