簡體   English   中英

如何將數據從表示層傳遞到業​​務邏輯層? (ASP.NET MVC 5)

[英]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注入您的方法中,這是可能發生的情況:

  • 您只需調用StudentViewModel.Save(...) (MVC應用程序項目)
  • 視圖模型內的save方法可以創建您的BLL實例並做有需要的事情
  • 在BLL中,您可以使用自己擁有的信息來創建您的學生(實際實體),並通過致電DAL保留該項目

所以最終得到這樣的依賴圖

MVC應用程序引用BLL引用DAL引用實體層。

還有很多其他方法可以使用依賴注入等使上述結構更好,但這至少應回答一些問題(並創建許多其他問題):)

暫無
暫無

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

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