嵌套ViewComponent,有可能吗?

Nested ViewComponent, is it possible?

尝试实现下图的布局,我想问一下关于页面布局架构的最佳实践。在页面的每个部分或部分视图中都有独立的 ViewComponents 更好吗?是否可以嵌套 ViewComponents?

想法是重复使用不同页面中其他位置的部分。这个概念与我们过去拥有的 Web 部件非常相似,但现在我尝试用 Asp 实现类似的东西。净核心.

是的,可以嵌套View Components

需要牢记的重要事项:

  • 您应该将视图结构保存在 Components 文件夹下
  • 您应该将 ViewComponent classes 保存在 ViewComponent 文件夹下
  • 当你将 component1 嵌套到 component2 中,同时将 component2 嵌套到 component1
  • 时,你应该自己控制无限循环

注意:您很可能需要您的组件包含 edit/save/update 功能。据我了解,View Components are supposed to be views only as they have only InvokeAsync and not something like UpdateAsync. So if you'd like to implement any kind of saving logic, you will need to take care of doing this yourself (e.g. via AJAX calls). It is possible (I have verified), but it requires to get familiar with Microsoft.jQuery.Unobtrusive.Ajax and handle responsesJavaScript 的客户端(有时包括诸如在 JS 中替换 DOM 元素内部 HTML 之类的东西来自服务器响应)。您还需要决定在何处放置视图组件更新端点的控制器操作(可以是 View Components 的特殊控制器 class)。