11

我有两个问题:

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

实际上我是初学者,并遵循亚当弗里曼的“Pro ASP.NET Core MVC,第 6 版”,他制作了一个 taghelper 类,他在其中使用

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

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

4

1 回答 1

13

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

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

 var currentRequest = ViewContext.HttpContext.Request;

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

您的标签助手可能不需要访问ViewContext对象及其所有子对象。如果没有,您可以从TagHelper. 它当然不是 a 的必需属性,TagHelper到目前为止,我自己的大多数标签助手都不需要访问它。

于 2017-04-18T13:12:56.863 回答