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