2016-11-27 42 views
0

我是Web API2的新手。我的解決方案有3個項目(MVC,WebAPI2,EF類庫)。我有以下疑問。如何使用Web API 2在MVC中進行模型驗證?

1)將WebAPI和MVC作爲單獨的項目分開考慮。這是可取的,還是保持在單個項目中更好?

2)使用WCF,我們可以在MVC中獲取服務引用,以利用所有數據庫類模型,以便在MVC中輕鬆地支持控制器並添加模型驗證。如何用Web API2做到這一點,因爲我不會在MVC中爲DB類提供參考。我是否需要在MVC項目中創建重複的DB類模型以進行腳手架目的和模型驗證目的?

回答

0

您的標題讓我感到困惑,但模型驗證可以通過驗證屬性來完成。我會嘗試回答你問題的正文中的問題。

這取決於你期望如何使用你的MVC和WebApi項目。 請記住,如果他們在同一個項目中,您可以使自己更容易,因此您不必過多擔心RPC。但誰知道你打算如何使用它們。

WebAPI通常用於與您自己以外的系統進行集成。出於這個原因,(序列化)和請求/響應處理是高度可定製的。用於WebAPI控制器的模型通常被指定或提供給接口要與之集成的系統。

用於WebAPI或MVC控制器的模型應該與您的ORM的實體模型分開。您希望這樣做的原因是,實體模型中的數據並不總是適合使用視圖或從視圖發送回控制器的視圖模型的驗證。

在這兩種情況下,接口WebAPI和MVC控制器的模型都應該被設計爲適應您的用例,並且應該與您的實體模型相當分離以實現持久性。

所以要回答你的第二個問題,你可能只需要一組實體模型,可能只有一個dbcontext實現,但是在它自己的項目中包含所有這些,這樣如果你確實有單獨的MVC和WebAPI項目,它們都依賴於EF項目。

相關問題