簡體   English   中英

ASP.NET MVC3 - 單頁上的多個存儲過程

[英]ASP.NET MVC3 - Multiple Stored procedures on Single Page

是否可以調用多個存儲過程(不是來自過程的多個結果集)並在ASP.NET MVC 3應用程序中的單個頁面上顯示結果?

根據我的理解,在任何單個頁面上只能創建一個模型,並且我的存儲過程已經與該模型綁定。 我想調用另一個程序並在我的頁面上顯示該結果

我認為根本問題是理解模型MVC模式中的含義。

首先,

該模型由應用程序數據和業務規則組成 ,控制器調解輸入,將其轉換為模型或視圖的命令。[3] 視圖可以是數據的任何輸出表示,例如圖表或圖表

資源

在ASP.Net MVC中,您將模型鏈接到視圖,此模型不應該是域邏輯或任何域對象的一部分

真實模型(使用MVC模式的含義)由您的域對象表示。

那么你應該把什么放在你鏈接到你的視圖的對象里?

這些對象應該包含視圖表示,換句話說,簡單的DTO 包含將在視圖中使用的數據, 此而已。 這些模型應代表視圖中使用的數據。 如果您遵循這種方法,並且需要在頁面中顯示更多數據,則只需要在此模型中添加另一個屬性,瞧,您可以在視圖中使用它。

在CQRS體系結構中,這些DTO應由Query存儲庫填充。

如果您沒有CQRS體系結構,只需在您的域,存儲庫等中填充這些對象。不要在控制器內部執行此操作,通過使用服務或存儲庫調用您的真實域來保持控制器清潔和簡單

盡量避免重復使用這些DTO,它們應該只屬於一個視圖。 並幫自己一個忙,不要嘗試重用域對象而不是DTO只是將它用作模型。

按照這種方法,您的視圖模型將是干凈的,因為它們將只是DTO並且僅包含視圖所需的數據。 如果您願意,您可以從不同的來源填寫這些DTO,甚至可以從不同的數據庫中填寫。

當您想要執行操作時,您將從模型中讀取用戶提供的數據,並使用此數據通過存儲庫,服務或CQRS弧調用您的域。 使用命令

你的問題的簡單答案是“是”。

我建議你做更多的研究(即閱讀文章和查看示例應用程序)到MVC中並集中精力理解這些要點:

  • Model是一個類,用於對要在View中顯示的數據進行分組。 它可以通過各種方法填充,而不必是域對象或數據庫結果的純表示。
  • “頁面”(用戶在其瀏覽器窗口中看到的概念)可以由一個或多個視圖組成 每個View都可以負責顯示一種允許重用的模型 ,但“頁面”可以有多個 視圖
  • 模型不與存儲過程“綁定”。 也許你正在使用一個返回DTO類的ORM工具(你稱之為模型)? 這不一定是View使用的模型 Controller可以將這些DTO類中的幾個組成一個Model類。
  • N層應用程序設計,其中數據庫訪問與顯示邏輯分離。 MVC試圖鼓勵這一點,但它仍然必須正確完成,以避免束縛自己。

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM