C# 一个控制器中的多个模型与多个局部视图

C# 一个控制器中的多个模型与多个局部视图,c#,asp.net-mvc,C#,Asp.net Mvc,我只是好奇,什么被认为更好? 将多个模型集成到一个控制器中—即,一个控制器对多个模型执行业务访问,然后将这些结果传递给一个视图,或者 每个控制器一个模型,具有多个局部视图,控制器动作将控制器连接在一起?一个控制器可以使用多个模型 然而,一个视图只能传递一个称为ViewModel的模型 所以,也许你可以说,每个ActionResult一个输出ViewModel,但是正如你在ActionResult中提到的,你可能会使用4个模型,结果会归结为输出ViewModel 转到partialview的模型可

我只是好奇,什么被认为更好? 将多个模型集成到一个控制器中—即,一个控制器对多个模型执行业务访问,然后将这些结果传递给一个视图,或者


每个控制器一个模型,具有多个局部视图,控制器动作将控制器连接在一起?

一个控制器可以使用多个模型

然而,一个视图只能传递一个称为ViewModel的模型

所以,也许你可以说,每个ActionResult一个输出ViewModel,但是正如你在ActionResult中提到的,你可能会使用4个模型,结果会归结为输出ViewModel


转到partialview的模型可能与父视图的模型或父视图模型的子对象完全相同。

可以将ViewData[]字典传递到视图,其中包含多个模型。当然,这是传递一个完整的对象,但允许灵活地访问每个视图的多个模型。是的,但这是一种草率的方式。必须为视图上需要的所有模型创建一个viewmodel。这是正确的做法我同意使用ViewData[]不是最佳做法,但事实就是如此。这是针对特殊情况的。我个人很少使用它,就像你说的,我不觉得它是最佳实践。当您返回一个页面但出现错误时,最好使用senario,该错误不是viewmodel的一部分,因此您可以使用viewdata传递该错误