我想创建一个有多个引导选项卡的剃刀页面。
Razor页面:客户/Edit.cshtml页面上的选项卡:[客户信息][联系人][订单]
根据我所做的研究,我相信ViewComponents或Partial Views将是我在这里的朋友,因为它可以将每个部分分解成自己的模型并具有可重用性。
然而,我有点困惑于如何避免同时从客户/编辑页面模型加载客户信息、联系人和订单的所有数据。
我的目标是让它在点击选项卡时加载数据。
在MVC和Core中,我使用各种方法,这取决于我当时对应用程序的看法。
如果所有内容都在一个视图模型中,那么引导选项卡只显示已经呈现给客户端的内容。如果您需要在每个选项卡中进行编辑,那么这种方法效果很好(在数据开销不大的情况下(。我可能会使用许多采用视图模型但只处理一个选项卡功能的操作。还值得添加一个操作参数,让您在渲染视图时选择可见选项卡。SAVE选项可以很简单,只需一个业务层方法即可处理创建和更新场景。
如果只显示数据和指向其他地方的链接,我可能会使用javascript方法在从相关操作激活每个选项卡时加载它的HTML。如果你想执行更改操作,那么你必须在每个选项卡中管理它。主视图非常简单,DIV占位符包含每个选项卡的每个操作所呈现的HTML。你可能会使用javascript进行更新操作,但你也可以使用带有ajax助手的标准表单/帖子来只呈现更新操作所需的DIV内容。
我有时会使用Bootstrap对话框进行更新,该对话框由javascript控制。在这些情况下,我的更新操作返回带有布尔值的JSON,以指示通过/失败,因此返回的消息要么是错误消息,要么是成功消息。JavaScript用于更新成功的标签内容
两种方法都不比其他好