C# 为什么taghelper不能在服务器上呈现

C# 为什么taghelper不能在服务器上呈现,c#,core,C#,Core,我已经创建了一个taghelper,它用几个源渲染一个图形 public class CustomFigureTagHelper : TagHelper { public HelpersCore.Entity.PictureData PictureData { get; set; } public override void Process(TagHelperContext context, TagHelperOutput output) { if (

我已经创建了一个taghelper,它用几个源渲染一个图形

public class CustomFigureTagHelper : TagHelper
{
    public HelpersCore.Entity.PictureData  PictureData { get; set; }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        if (PictureData != null)
        {
            output.TagName = "figure";    // Replaces <email> with <a> tag           
            StringBuilder sb = new StringBuilder();
            sb.Append("<picture>");
            if (!string.IsNullOrEmpty(PictureData.Image2))
                WriteSource("image/webp", PictureData.Image2, sb);
            WriteSource("image/jpg", PictureData.Image1, sb);
            sb.Append("<img alt=\"" + PictureData.AlternateText + "\" class=\"lazyload\" data-cms-image=\"" + PictureData.Image1 + "\" src=\"" + PictureData.Thumbnail + "\" style=\"width:100%;\">");
            sb.Append("</picture>");
            if (PictureData.ShowCaption && !string.IsNullOrEmpty(PictureData.AlternateText))
            {
                sb.Append("<figcaption>");
                sb.Append(PictureData.AlternateText);
                sb.Append("</figcaption>");
            }
            output.Content.SetHtmlContent(sb.ToString());
            return;
        }

        output.Content.SetContent(string.Empty);
    }

    private void WriteSource(string imageformat, string image, StringBuilder sb)
    {
        sb.Append("<source type=\"" + imageformat + "\" srcset=\"" + image + "\" data-srcset=\"" + image + "\">");
    }
}
公共类CustomFigureTagHelper:TagHelper
{
public HelpersCore.Entity.PictureData PictureData{get;set;}
公共覆盖无效进程(TagHelperContext上下文,TagHelperOutput输出)
{
if(PictureData!=null)
{
output.TagName=“figure”//替换为标记
StringBuilder sb=新的StringBuilder();
某人加上(“”);
如果(!string.IsNullOrEmpty(PictureData.Image2))
WriteSource(“image/webp”,PictureData.Image2,sb);
编写资源(“image/jpg”,PictureData.Image1,sb);
某人加上(“”);
某人加上(“”);
if(PictureData.ShowCaption&&!string.IsNullOrEmpty(PictureData.AlternateText))
{
某人加上(“”);
某人追加(图片数据替代文本);
某人加上(“”);
}
output.Content.SetHtmlContent(sb.ToString());
返回;
}
output.Content.SetContent(string.Empty);
}
私有void WriteSource(字符串图像格式、字符串图像、StringBuilder sb)
{
某人加上(“”);
}
}
taghelper在未编译视图中使用

@{
    if (!string.IsNullOrEmpty(Model.Settings))
    {
        Newtonsoft.Json.Linq.JObject settings = Newtonsoft.Json.Linq.JObject.Parse(Model.Settings);
        if (settings["ImagePath"] != null)
        {
            Comito.Core.HelpersCore.Entity.PictureData pictureData = new Comito.Core.HelpersCore.Entity.PictureData();
            pictureData.Image1 = settings["ImagePath"] != null ? "/CMSContent/Media/Images/lg/" + settings["ImagePath"].ToString() : string.Empty;
            pictureData.Image2 = settings["ImagePathWebP"] != null ? "/CMSContent/Media/Images/lg/" + settings["ImagePathWebP"].ToString() : string.Empty;
            pictureData.Thumbnail = settings["ImagePath"] != null ? "/CMSContent/Media/Images/xs/" + settings["ImagePath"].ToString() : string.Empty;
            <custom-figure picture-data="pictureData"></custom-figure>
        }
    }
}
@{
如果(!string.IsNullOrEmpty(Model.Settings))
{
Newtonsoft.Json.Linq.JObject设置=Newtonsoft.Json.Linq.JObject.Parse(Model.settings);
如果(设置[“ImagePath”]!=null)
{
Comito.Core.HelpersCore.Entity.PictureData PictureData=新建Comito.Core.HelpersCore.Entity.PictureData();
pictureData.Image1=设置[“ImagePath”]!=null?”/CMSContent/Media/Images/lg/“+设置[“ImagePath”]。ToString():string.Empty;
pictureData.Image2=设置[“ImagePathWebP”]!=null?”/CMSContent/Media/Images/lg/“+设置[“ImagePathWebP”]。ToString():string.Empty;
pictureData.Thumbnail=设置[“ImagePath”]!=null?”/CMSContent/Media/Images/xs/“+设置[“ImagePath”]。ToString():string.Empty;
}
}
}
在本地主机(IIS)上,taghelper呈现良好

<figure data-theme="mytheme">
  <picture>
    <source type="image/webp" srcset="/CMSContent/Media/Images/lg/42.webp" data-srcset="/CMSContent/Media/Images/lg/42.webp">
    <source type="image/jpg" srcset="/CMSContent/Media/Images/lg/42.jpg" data-srcset="/CMSContent/Media/Images/lg/42.jpg">
   <img alt="" class="lazyload" data-cms-image="/CMSContent/Media/Images/lg/42.jpg" src="/CMSContent/Media/Images/xs/42.jpg" style="width:100%;">
</picture>

但在我的服务器(也是IIS)上,我只生成taghelper的原始输出:

<custom-figure picture-data="pictureData"></custom-figure>

在我的本地主机上,只需要引用_ViewImports.cshtml中的标记,但在服务器上,我必须放置

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper  *, Comito.Core.HelpersCore
论景观