ASP MVC 核心:ViewComponent 内部 HTML

byt*_*e77 5 .net c# asp.net-core

我正在尝试使用ViewComponents包装 ASP MVC Core 2.1 中的重复 HTML 块。

标签助手让它看起来很简单:

<vc:expansion-panel title="Headline">
    content.....
</vc:expansion-panel>
Run Code Online (Sandbox Code Playgroud)

但是:标签的内部 HTML 不会呈现。RenderBody()显然这里的函数不合适。那么应该使用什么函数呢?

由于我在网上没有找到任何参考资料,可能我对 ViewComponents 的理解是错误的。然而,即使是这样,我仍然认为没有理由不将内部 HTML 渲染到ViewComponent.

问题:如何渲染<vc:expansion-panel>...中的内部 HTML ViewComponent


@addTagHelper *, ProjectName
Run Code Online (Sandbox Code Playgroud)

ExpansionPanelViewComponent.cs

using Microsoft.AspNetCore.Mvc;

namespace ProjectName.Components
{
    public class ExpansionPanelViewComponent : ViewComponent
    {
        public IViewComponentResult Invoke(string title)
        {
            ViewData["Title"] = title;
            return View();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

默认.cshtml

<h2 class="panel">@ViewData["Title"]</h2>
<div class="panel">
    @RenderBody()            <----- ??
</div>
Run Code Online (Sandbox Code Playgroud)