我希望触发股票
我知道正确的使用方法是将其更改为:
这个过程与版本控制CSS包含和图像(
由于我有很多包含的脚本、样式表和图片,所以我想自动化一些东西。因此,我不想在每个HTML元素上添加
问题在于 - 它不起作用。
目前,我的TagHelper仅涵盖
ScriptTagHelper
(在GitHub上查看源代码),以便它会模拟asp-append-version="true"
属性。我知道正确的使用方法是将其更改为:
<script src="somefile.js"></script>
转换为:
<script src="somefile.js" asp-append-version="true"></script>
这个过程与版本控制CSS包含和图像(
LinkTagHelper
和ImageTagHelper
)非常相似。由于我有很多包含的脚本、样式表和图片,所以我想自动化一些东西。因此,我不想在每个HTML元素上添加
asp-append-version="true"
,而是宁愿创建一个自定义的TagHelper来为我完成这项工作。问题在于 - 它不起作用。
目前,我的TagHelper仅涵盖
script
标签,代码如下: [HtmlTargetElement("script", Attributes = "src")]
public class TestTagHelper : TagHelper
{
public override int Order => int.MinValue;
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if(!context.AllAttributes.ContainsName("asp-append-version"))
{
output.Attributes.SetAttribute("asp-append-version", "true");
}
}
}
但是,它不会触发默认的ScriptTagHelper
,而是直接输出asp-append-version="true"
到输出HTML中。我还将Order
属性设置为INT_MIN,使其在其他任何标签助手之前执行,但仍然无法工作。
有没有办法让它工作?
ScriptTagHelper
继承并简单地修改它以默认应用追加版本。这可能只需要将支持属性默认设置为true而不是false,但我还没有查看代码。 - Chris PrattScriptTagHelper
这样的东西是有效的,因为它对脚本标记进行了单次遍历,然后假定呈现的HTML。如果它继续寻找标签助手,那么它将再次运行ScriptTagHelper
... 然后再次...无限循环。 - Chris Pratt