Когда выполняются вспомогательные компоненты тегов?C#

Место общения программистов C#
Ответить
Anonymous
 Когда выполняются вспомогательные компоненты тегов?

Сообщение Anonymous »

TL;DR. В какой момент конвейера рендеринга в ASP.NET Core выполняются/обрабатываются вспомогательные компоненты тегов?
Например, они выполняются после отображения целевого тега или после отображения всей страницы? Я не могу найти эту информацию в официальной документации.
Предположим, у меня есть вспомогательный компонент тега, предназначенный для элементов , например:

Код: Выделить всё

public MyHeadTagHelperComponent : TagHelperComponent
{

[ViewContext]
public ViewContext ViewContext { get; set; }

public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
if (!context.TagName.Equals("head", StringComparison.OrdinalIgnoreCase))
return;

// Get some data from the HttpContext
var someData = ViewContext.HttpContext.Items["SomeData"] as SomeData;

// Render a  tag based on `someData`
output.PostContent.AppendHtml("/*Some CSS*/");
}

}
Затем я регистрирую свой вспомогательный компонент тегов как службу:

Код: Выделить всё

services.AddTransient();
Предположим, что у меня также есть вспомогательный тег, предназначенный для элементов , например:

Код: Выделить всё

[HtmlTargetElement("form", Attributes = "my-attribute-name")]
public MyFormTagHelper : TagHelper
{

[ViewContext]
public ViewContext ViewContext { get; set; }

public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
// Set some data to the HttpContext
ViewContext.HttpContext.Items["SomeData"] = new SomeData("my data");

// Do other stuff
}

}
Как узнать, что при запуске MyHeadTagHelperComponent данные, установленные MyFormTagHelper, будут присутствовать в HttpContext? Другими словами, будет ли в этом случае вспомогательный компонент тега всегда запускаться после вспомогательного компонента тега? Влияет ли тот факт, что вспомогательный компонент тега нацелен на , на порядок его выполнения над вспомогательным элементом тега (который выполняется где-то внутри )?


Подробнее здесь: https://stackoverflow.com/questions/789 ... s-executed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»