我注意到在ASP.NET Core 2.2中,我们可以使用以下命令从RouteData
获取/设置ViewComponent
:
Microsoft.AspNetCore.Mvc.ViewComponent.ViewComponentContext.ViewContext.RouteData
如果所有这些操作都返回与Microsoft.AspNetCore.Mvc.ViewComponent.RouteData
完全相同的数据,那么ViewContext.RouteData
有什么意义?
答案 0 :(得分:0)
当在viewComponent.cs中使用这两种方法时,这两种方法返回相同的数据,从它们的定义中可以看出,只有ViewComponentContext.ViewContext.RouteData
可以用于单元测试,而ViewComponent.RouteData
是只读的。
Microsoft.AspNetCore.Mvc.ViewComponent.ViewComponentContext.ViewContext.RouteData:
//
// Summary:
// Gets or sets the Microsoft.AspNetCore.Routing.RouteData for the current request.
//
// Remarks:
// The property setter is provided for unit test purposes only.
public RouteData RouteData { get; set; }
Microsoft.AspNetCore.Mvc.ViewComponent.RouteData :(只读)
//
// Summary:
// Gets the Microsoft.AspNetCore.Mvc.ViewComponent.RouteData for the current request.
public RouteData RouteData { get; }
不仅用于RouteData
,而且其他属性,例如HttpContext
也具有相同的配置。 ViewComponent
依靠ViewComponentContext.ViewContext
公开那些只读属性。