2014-11-21 87 views
0

我有問題有關.NET MVC,分別爲標準.NET MVC標準

我做的一個信息系統,並有我的業務邏輯作爲單獨的項目,也是數據訪問邏輯作爲另一個獨立的項目

我這樣做是爲了使進一步的修改更容易(如更改數據源,我使用的MVC實際上僅用於C#和HTML之間的通信),所以MVC項目不知道數據是如何創建的,它只是從中獲得它們不同的項目

所以這個MVC項目中的模型部分是空的,不會包含任何m odels

這個aproach有效嗎?或者我應該在此場景中使用MVC中的模型

+1

如果您的控制器無法看到任何模型,您將如何知道要查看的內容? – Logman 2014-11-21 13:13:32

回答

0

只要該項目由您的MVC項目引用,您的模型/視圖模型就可以位於另一個類庫項目中。

以下職位的辯論,爲什麼你會選擇這樣做的一種方式,而不是其他的細節問題:

ViewModel Best Practices

1

我做的信息系統,並有我bussines邏輯作爲單獨的 項目和數據訪問邏輯作爲另一個單獨項目

每個項目具有不同的響應度;完全正確。只要確保視圖無法訪問您的業務邏輯(以避免打破MVC模式)。

我這樣做像這樣做進一步modificitaion更容易 (如更改數據源的MVC我其實只使用C#和HTML之間 通信)

你不要以爲在這個MVC項目中。你只是移動你的模型(M),這有業務邏輯。現在,您的「MVC項目」是一個「UI項目」,它具有控制器(C)作爲通信和視圖(V)的一種方式來顯示數據。

所以MVC項目不知道數據如何被創建的,它只是 讓他們從不同的項目

這句話應該是:「視圖不知道模型什麼,控制器用於與模型進行交互「。這只是MVC模式!

這個說法有效嗎?或者我應該在MVC中使用模型

您的模型文件夾現在將用於存儲請求和響應DTO。但是,這不是強制性的。您可以使用動態對象,ViewBag對象將數據發送到視圖。或者不使用ASP.NET MVC框架視圖並以Web Api的形式返回JSON對象(ASP.NET Web Api也遵循MVC模式)。

結論

當你創建一個ASP.NET MVC項目,它僅僅是一個模板,可以幫助你遵循MVC模式,但你可以通過多種方式不會破壞MVC模式改變這個模板。