asp.net-core - 嵌套ViewComponent,可以吗?

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

尝试实现下图的布局,想请教有关页面布局架构的最佳实践。在页面的每个部分或部分 View 中拥有独立的 ViewComponent 哪个更好?是否可以嵌套 ViewComponent?

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

Basic layout

最佳答案

是的,可以嵌套 View 组件

需要记住的重要事项:

  • 您应该将 View 结构保留在 Components 文件夹下,保持简单
  • 您应该将 ViewComponent 类保留在 ViewComponent 文件夹下
  • 当您将 component1 嵌套到 component2 中,同时将 component2 嵌套到 component1 中时,您应该自己控制无限循环>

注意:您很可能需要组件包含编辑/保存/更新功能。据我了解,View Components应该只是 views,因为它们只有 InvokeAsync 而不是 UpdateAsync 之类的东西。因此,如果您想实现任何类型的保存逻辑,您需要自己负责执行此操作(例如通过 AJAX 调用)。有可能(我已经验证过),但是需要熟悉Microsoft.jQuery.Unobtrusive.Ajaxhandle responsesJavaScript 的客户端(有时包括将 JS 中的 DOM 元素内部 HTML 替换为您想要的内容从服务器响应中获取)。您还需要决定在哪里放置 View 组件更新端点的 Controller 操作(可能是View Components的特殊 Controller 类)。

关于asp.net-core - 嵌套ViewComponent,可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42681849/

相关文章:

c# - 什么是 Invoke 和 InvokeAsync 方法?

iis - IIS 上的 ASP.NET Core 2.0 错误 502.5

.net - .net core 1.1 中嵌入的 power bi

asp.net-core - .Net 5 中的调试设置

asp.net-core - 跨多个项目共享 View 组件

c# - 带有可选参数的 ViewComponent

使用 HTTP POST 上传 PDF 文件的 VBA

visual-studio-2015 - 安装NuGet软件包时未找到项目“默认”错误

c# - 在共享_Layout中显示ViewComponent,仅在某些页面上