在 Tag Helper 上设置 ViewContext 属性 的目的是什么?

What's the purpose of having a ViewContext property on a Tag Helper?

我有 2 个问题:

1.什么是Viewcontext,它有什么优势?
2. 为什么我们必须在标签助手中使用它?

实际上我是初学者,跟随亚当·弗里曼的 "Pro ASP.NET Core MVC,6th Edition" 他制作了一个 taghelper class,他在其中使用

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

他没有解释上面这段代码为什么他在方括号中使用这些属性这些属性的用途。 请分享一个 link 来描述这些类型的属性(如果有)

ViewContext 对象是提供对 HttpContext、HttpRequest、HttpResponse 等对象的访问的对象。您可以通过 属性 在 TagHelper 中访问它的方式,但在这种情况下,您需要设置 [ViewContext] 属性,以便 属性 设置为当前 ViewContext

例如,您可以通过以下方式访问当前请求:

 var currentRequest = ViewContext.HttpContext.Request;

[HtmlAttributeNotBound] 基本上表示此属性不是您打算通过 html 中的标签助手属性设置的属性。

您的标签助手可能不需要访问 ViewContext 对象及其所有子对象。如果没有,您可以从 TagHelper 中省略 ViewContext 属性 和相关属性。它肯定不是 TagHelper 所必需的 属性,而且到目前为止,我自己的大多数标签助手都不需要访问它。