C# 如何在asp.net核心页面中重用HTML片段?

C# 如何在asp.net核心页面中重用HTML片段?,c#,asp.net-core,razor,C#,Asp.net Core,Razor,我试图在我的razor页面(视图组件)中重用HTML片段,但不知何故,它从未调用HTML部分,也没有触及HTML部分的中断 我正在使用Asp.NETCore2.2 @{ Func<CategorySimpleModel, Microsoft.AspNetCore.Html.IHtmlContent> DisplayManufacturerPicture= @<div class="col-sm-4">

我试图在我的razor页面(视图组件)中重用HTML片段,但不知何故,它从未调用HTML部分,也没有触及HTML部分的中断

我正在使用Asp.NETCore2.2

        @{
        Func<CategorySimpleModel, Microsoft.AspNetCore.Html.IHtmlContent> DisplayManufacturerPicture=
            @<div class="col-sm-4">
                <div class="row">
                    @foreach (var m in item.Manufacturers)
                    {
                        <div class="col-md-6 col-sm-12">
                            blah blah
                        </div>
                    }
                </div>
            </div>;
        }

   @foreach (var root in Model.Categories)
            { 
               DisplayManufacturerPicture (root);
            }
@{
Func DisplayManufacturerPicture=
@
@foreach(项目制造商中的var m)
{
废话
}
;
}
@foreach(Model.Categories中的变量根)
{ 
显示制造商图片(根);
}

你想做的事(还)不可能。你应该看一下:


尽管方法调用在服务器端语法中,但它只对@起作用

 @if (root.Manufacturers.Count > 0)
{
   @DisplayManufacturerPicture(root);
}

你可能想看看这是.NETCore3.0的预览版,我只使用2.2版。”但不知怎的,它从来没有调用或点击html部分的“你到底是什么意思?”?你是否在Func中放置了一个断点,但它没有被命中?是的,它从未被命中,我甚至尝试过使用一个简单的字符串Func。奇怪的是,它从来没有显示任何东西,尽管for循环确实点击了displayManufacturerpicture是的,我确实使用了很多局部视图,我正在尝试的是从旧的asp.net替换旧的@helper。您可能会看到或部分视图不是遗留的,还请注意,我也没有使用HtmlHelper。这些都不是“旧ASP.NET”。
@model CategorySimpleModel

<div class="col-sm-4">
    <div class="row">
        @foreach (var m in item.Manufacturers)
        {
            <div class="col-md-6 col-sm-12">
                blah blah
            </div>
        }
    </div>
</div>
 @if (root.Manufacturers.Count > 0)
{
   @DisplayManufacturerPicture(root);
}