在Tag Helper上拥有ViewContext属性的目的是什么?

Ahm*_*mad 6 asp.net-mvc viewcontext asp.net-core-mvc asp.net-core-tag-helpers

我有两个问题:

1.什么是Viewcontext以及它的优点是什么?
2.为什么我们必须在标签助手中使用它?

实际上我是初学者,并遵循adam freeman的"Pro ASP.NET Core MVC,第6版",他在这里制作了一个taghelper类,他使用了

 [ViewContext]
 [HtmlAttributeNotBound]
 public ViewContext ViewContext { get; set; }
Run Code Online (Sandbox Code Playgroud)

他没有解释上面这段代码为什么他在这些属性的方括号中使用这些属性.如果有的话,请分享描述这些类型属性的链接

Ron*_*n C 9

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

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

 var currentRequest = ViewContext.HttpContext.Request;
Run Code Online (Sandbox Code Playgroud)

[HtmlAttributeNotBound] 基本上说这个属性不是你打算通过html中的标签帮助器属性设置的.

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