是否可以调用多个存储过程(不是一个过程的多个结果集)并在 ASP.NET MVC 3 应用程序的单个页面上显示结果?
据我了解,在任何单个页面上只能创建一个模型,并且我的存储过程已经绑定到该模型。我想调用另一个程序并在我的页面上显示该结果
是否可以调用多个存储过程(不是一个过程的多个结果集)并在 ASP.NET MVC 3 应用程序的单个页面上显示结果?
据我了解,在任何单个页面上只能创建一个模型,并且我的存储过程已经绑定到该模型。我想调用另一个程序并在我的页面上显示该结果
我认为根本问题是要理解MVC 模式中Model的含义。
首先,
模型由应用程序数据和业务规则组成,控制器调解输入,将其转换为模型或视图的命令。 [3] 视图可以是数据的任何输出表示,例如图表或图表
在 ASP.Net MVC 中,您将模型链接到您的视图,此模型不应该是您的域逻辑或任何域对象的一部分
真正的模型(使用 MVC 模式的含义)由您的域对象表示。
那么您应该在链接到视图的对象中放入什么?
这些对象应该包含视图的表示,换句话说,简单的 DTO只包含将在视图中使用的数据,仅此而已。这些模型应该代表视图中使用的数据。如果您遵循这种方法,并且需要在页面中显示更多数据,则只需向此模型添加另一个属性,瞧,您可以从视图中使用它。
在 CQRS 架构中,这些 DTO 应该由Query repositories填充。
如果您没有 CQRS 架构,只需将这些对象填充到您的域、存储库等中。不要在控制器内部执行此操作,通过使用服务或存储库调用您的真实域来保持控制器清洁和简单
尽量避免重复使用这些 DTO,它们应该只属于一个视图。帮自己一个忙,不要试图重用域对象而不是 DTO 只是为了将其用作模型。
按照这种方法,您的视图模型将是干净的,因为它们将只是 DTO 并且仅包含视图所需的数据。您可以从不同的来源填充这些 DTO,如果需要,甚至可以从不同的数据库中填充。
当您想要执行某个操作时,您将从模型中读取用户提供的数据,并使用这些数据通过存储库、服务或在 CQRS 弧中调用您的域。使用命令
您的问题的简单答案是“是”。
我建议您对 MVC 进行更多研究(即阅读文章和查看示例应用程序)并专注于理解以下几点:
祝你好运!