嵌套的ViewComponent,有可能吗?

时间:2017-03-08 21:01:13

标签: asp.net-core asp.net-core-viewcomponent

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

这个想法是重用不同页面中其他位置的部分。这个概念与我们以前的Web部件非常相似,但现在我尝试使用Asp实现类似的功能。净核心。

Basic layout

1 个答案:

答案 0 :(得分:2)

是的,可以嵌套View Components

重要的是要记住:

  • 您应该将您的观看结构保留在Components文件夹平面
  • 您应该保留ViewComponent类inder ViewComponent文件夹
  • 当您将component1嵌入component2并同时component2嵌入component1
  • 时,您应该自己控制无限循环

注意:您很可能需要您的组件包含edit/save/update功能。据我了解,View Components应该只是views,因为它们只有InvokeAsync而不是UpdateAsync。因此,如果您想要实现任何类型的保存逻辑,您需要自己处理(例如通过AJAX调用)。这是可能的(我已经验证过),但它需要在JavaScript的客户端熟悉Microsoft.jQuery.Unobtrusive.Ajaxhandle responses(有时包括替换JS DOM元素内部HTML与您从服务器响应中获得的内容。您还需要确定将视图组件更新端点的控制器操作放在何处(可能是View Components的特殊Controller类)。