[英]ASP.NET MVC: How can I get my business rule validation to bubble up to the presentation layer?
[英]How do I pass data from presentation layer to business logic layer? (ASP.NET MVC 5)
我正在使用ASP.NET MVC 5創建我的第一個Web應用程序,並希望以正確的方式進行操作。 我計划創建一個具有表示層(MVC),數據訪問層(DAL)和業務邏輯層(BLL)的體系結構。 DAL和BLL是與MVC項目分離的類庫。 這個想法是,MVC項目將引用BLL來執行業務邏輯,然后業務邏輯將引用DAL與數據庫進行交互。 我正在使用存儲庫模式。
我的問題是,數據如何在層之間傳遞? 例如,假設我在MVC項目中為一個具有FirstName和LastName屬性的Student類提供了一個實體框架模型。 然后,我創建一個強類型視圖,用戶可以在其中通過填寫簡單表格並單擊“保存”來添加學生。 學生模型將發布到Controller中相應的操作方法,對嗎? 然后,控制器是否不需要將Student對象發送到BLL,再從那里發送到DAL,以將其插入數據庫? 但是當BLL和DAL對Student類一無所知時怎么辦?
我不了解如何在不創建循環依賴的情況下工作。 有人可以解釋或提供代碼示例嗎?
先感謝您。
我認為您對MVC的想法大體上是正確的,盡管對於為什么會產生循環依賴關系有些困惑。 從您的解釋中,我可以看到:
M(模型)StudentViewModel (居住在MVC應用程序項目中)
V(view)Create.cstml(模型為StudentViewModel) (存在於MVC應用程序項目中)
C(控制器)使用StudentViewModel導航到CreatePage (位於MVC應用程序項目中)
當控制器執行Post時,您將填充的StudentViewModel注入您的方法中,這是可能發生的情況:
所以最終得到這樣的依賴圖
MVC應用程序引用BLL引用DAL引用實體層。
還有很多其他方法可以使用依賴注入等使上述結構更好,但這至少應回答一些問題(並創建許多其他問題):)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.