MVC 6 视图组件与部分视图:有什么区别?何时应使用每个



MVC 6 引入了视图组件,并表示它比部分视图更强大、更灵活。视图组件是否用于替换部分视图?有什么区别,每种实现都需要什么样的情况?

根据此链接- https://docs.asp.net/en/latest/mvc/views/view-components

作为 ASP.NET MVC 6 的新增功能,视图组件 (VC) 类似于部分视图,但它们的功能要强大得多。VC 包括控制器和视图之间相同的关注点分离和可测试性优势。您可以将 VC 视为微型控制器 - 它负责呈现一个块而不是整个响应。

因此,它只是对分部视图的增强,另一个区别是,当您使用分部视图时,您仍然依赖于控制器,而在视图组件中您不需要控制器。因此,存在关注点的分离。

有一个关于 ASP.NET 视图组件的详细信息帖子。http://www.tugberkugurlu.com/archive/exciting-things-about-asp-net-vnext-series-mvc-view-components

您可能

希望使用ViewComponent而不是PartialView的示例:
您需要编写一堆业务逻辑,例如,您可能需要联系第三方 Web 服务并获取数据并对其进行处理,然后显示此信息。

对于上述方案,当然可以在分部视图本身中编写 C# 代码,但它很丑陋,并且您希望代码可测试。因此,这就是视图组件有用的地方,即您可以在视图组件中编写所有业务逻辑并返回视图(这是类型 ViewViewComponentResult )。

视图组件与子操作不同。

当您需要分部视图时,也会使用ViewComponent s,这需要在_Layout中调用模型。若要避免编写 C# 代码以在布局中创建模型,最好使用可以通过依赖项注入使用为应用程序配置的服务(与控制器相同)的ViewComponent

最新更新