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

时间:2017-04-18 13:09:40

标签: asp.net-mvc asp.net-core-mvc viewcontext asp.net-core-tag-helpers

我有两个问题:

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

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

 var currentRequest = ViewContext.HttpContext.Request;

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

您的标记帮助程序可能不需要访问ViewContext对象及其所有子对象。如果没有,您可以省略TagHelper中的ViewContext属性和关联属性。它当然不是TagHelper的必需属性,到目前为止,我自己的大多数标签助手都不需要访问它。