Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在具有多个选项卡的asp.net core razor页面中按需加载ViewComponent数据_C#_Asp.net Core_Asp.net Core Mvc_Razor Pages_Asp.net Core Viewcomponent - Fatal编程技术网

C# 在具有多个选项卡的asp.net core razor页面中按需加载ViewComponent数据

C# 在具有多个选项卡的asp.net core razor页面中按需加载ViewComponent数据,c#,asp.net-core,asp.net-core-mvc,razor-pages,asp.net-core-viewcomponent,C#,Asp.net Core,Asp.net Core Mvc,Razor Pages,Asp.net Core Viewcomponent,我期待着创建一个剃须刀页面上有多个引导标签 Razor页面:Customers/Edit.cshtml 第页的选项卡:[客户信息][联系人][订单] 基于我所做的研究,我相信ViewComponents或Partial View将是我在这里的朋友,因为它将每个部分划分为具有自己的模型和可重用性 但是,对于如何避免同时从客户/编辑页面模型加载客户信息、联系人和订单的所有数据,我有点困惑 我的目标是在单击选项卡时加载数据。在MVC和Core中,我使用各种方法,具体取决于我当时对应用程序的看法 如果所

我期待着创建一个剃须刀页面上有多个引导标签

Razor页面:Customers/Edit.cshtml 第页的选项卡:[客户信息][联系人][订单]

基于我所做的研究,我相信ViewComponents或Partial View将是我在这里的朋友,因为它将每个部分划分为具有自己的模型和可重用性

但是,对于如何避免同时从客户/编辑页面模型加载客户信息、联系人和订单的所有数据,我有点困惑


我的目标是在单击选项卡时加载数据。

在MVC和Core中,我使用各种方法,具体取决于我当时对应用程序的看法

如果所有内容都在一个视图模型中,那么引导选项卡仅显示已呈现给客户端的内容。如果您需要在每个选项卡中进行编辑,则此方法效果良好(在数据开销不大的情况下)。我可能会使用许多采取视图模型的操作,但只处理一个选项卡的功能。还值得添加一个动作参数,用于在渲染视图时选择“可见”选项卡。SAVE选项可以很简单,只有一个业务层方法来处理创建和更新场景

如果只是显示数据和指向其他地方的链接,我可能会使用javascript方法在从相关操作激活每个选项卡时加载其HTML。如果要执行更改操作,则必须在每个选项卡中对此进行管理。主视图非常简单,使用DIV占位符来包含每个选项卡的每个操作所呈现的HTML。您可能会在更新操作中使用javascript,但也可以使用带有ajax助手的标准表单/post来呈现更新操作所需的DIV内容

我有时使用一个引导对话框进行更新,该对话框由javascript控制。在这些情况下,我的更新操作返回带有布尔值的JSON,以指示通过/失败,因此返回的消息要么是错误消息,要么是成功消息。JavaScript用于在成功时更新选项卡内容


这两种方法都不比另一种好

除非您的选项卡触发页面重新加载,否则您可能必须通过JavaScript并在选项卡单击上加载数据。我想知道的是,是否有一种方法可以仅使用纯asp.net内核和razor按需加载。但根据您所说的,我要么在单个视图模型中一次加载所有数据,要么甚至在多个视图模型中加载所有数据,并根据需要显示/隐藏数据。但是如果每个选项卡上都有大量数据,我想唯一的方法就是使用Javascript/jQueryAJAX。有意义吗?您可以在ajax调用或ajax.BeginForm控件中使用少量javascript。看看几个月前我给thos的一封信