gpt4 book ai didi

asp.net-core - HtmlHelper 在 MVC 6 vNext 中呈现嵌套标签帮助程序

转载 作者:行者123 更新时间:2023-12-02 20:27:20 27 4
gpt4 key购买 nike

问:有没有办法使用 IHtmlHelper 扩展来呈现标签助手的输出?

信息:我正在使用 ASP.NET 5/MVC 6 (vNext) 在 View 中呈现以下内容:

<cache expires-after="@TimeSpan.FromSeconds(5)">
<div custom-tag-helper-parm="9289"></div>
</cache>

我现在有一个 HtmlHelper 扩展方法来编写这段 HTML:

public static HtmlString RenderPortalContent(this IHtmlHelper HtmlHelper, string customTagHelperParm)
{
var output = $@"<cache expires-after='{@TimeSpan.FromSeconds(5)}'>
<div custom-tag-helper-parm = '{customTagHelperParm}'>
</div>
</cache>";

return new HtmlString(output);
}

目前,正如预期的那样,HTML 是按字面输出的。换句话说, <cache> 都不是也不是 custom-tag-helper-parm TagHelpers 已处理。

有没有办法使用这样的 IHtmlHelper 扩展来渲染标签助手的输出?

最佳答案

如果我的理解是正确的,你想做类似的事情

@Html.RenderPortalContent("blah")

在你看来。如果是这样,您可以执行以下操作:

public static HtmlString RenderPortalContent(this IHtmlHelper htmlHelper, string parameter)
{
var cache = new TagBuilder("cache");
cache.Attributes.Add("expires-after", TimeSpan.FromSeconds(5).Seconds.ToString());
var div = new TagBuilder("div");
div.Attributes.Add("custom-tag-helper-parm", parameter);

cache.InnerHtml.Append(div);

var writer = new System.IO.StringWriter();
cache.WriteTo(writer, new HtmlEncoder());
return new HtmlString(writer.ToString());
}

但是,如果您想扩展标签以允许内部标签和更大的灵 active ,您实际上需要编写自己的 TagHelper。幸运的是,这些编写起来并不太难。

<小时/>

编辑:您是否尝试过使用 ViewComponents

关于asp.net-core - HtmlHelper 在 MVC 6 vNext 中呈现嵌套标签帮助程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com