Можно ли выполнить TagHelperComponent
из, скажем, метода Startup.Configure
? Этот пример не работает, но я бы хотел сделать что-то подобное.
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<ITagHelperComponent, HeadTagHelperComponent>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync(
@"
<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
</head>
<body>
<h1>Hello, world</h1>
</body>
</html>
"
);
});
});
}
}
public class HeadTagHelperComponent : TagHelperComponent
{
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
if (string.Equals(context.TagName, "head", StringComparison.OrdinalIgnoreCase))
{
output.PostContent.AppendHtml("<script>alert('head tag');</script>");
}
return Task.CompletedTask;
}
}