【问题标题】:MVC Call and pass view to layout in view [closed]MVC调用并将视图传递给视图中的布局[关闭]
【发布时间】:2023-03-16 17:00:02
【问题描述】:

我正在开发一个 MVC 项目,它有一个布局文件和一个面板,其中将显示所有内容。布局类似于以下草图:

为了解释起见,让我们假设在内容框架上我将显示属于同一类别的多个博客文章(在侧导航中选择)。这些博客文章中的每一个都有一个指定的布局,如下所示,并且将通过调用控制器操作呈现为部分视图。

因此,如果用户选择查看侧导航中的烹饪帖子,这将触发 BlogController 上的烹饪动作。 Cooking Action 呈现 Cooking 视图,然后该视图将再次调用 BlogController 并请求 CookingFirstPost、CookingSecondPost 操作。这些将成功地将帖子呈现为部分视图。

但是。当所选类别只有一篇博客文章时,这是一种矫枉过正的做法。这将对控制器造成不必要的重复。我希望在只需要一篇博文时手动使用内容部分中的博文布局,这样我就不需要再次调用我的控制器来呈现部分视图。

请注意,在我的示例中,博客文章是固定的,并且总是这样,我将没有数据库访问权限。 问候 路易斯。

【问题讨论】:

  • 您为什么担心对控制器的双重调用?在单个 HTTP 往返的上下文中,我认为对控制器的任何合理调用次数都不会引起注意
  • 我不明白你的问题。我认为 CookingFirstPost 和 CookingSecondPost 操作没有任何理由存在。

标签: asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

为什么每次要加载博客项目时都返回控制器?为什么不在执行“Cooking”操作时只在一次往返中加载它们?

如果您有 10 篇烹饪博客文章,您应该一次将所有 10 篇文章加载到您的烹饪视图中。

从你的描述中我无法真正弄清楚你需要发生什么。

【讨论】:

  • 最好的选择是对内容进行分页并为每个页面显示 X 个帖子(例如:10/1000)。如果他有很多帖子(100+),这是最好的选择
猜你喜欢
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多