2012-07-24 27 views
1

我已經建立了一個MVC3 EF4項目,其中模型和存儲庫已分解爲單獨的組裝項目。所需屬性的基本驗證等工作正常,但如果我需要做任何遠程驗證說,以檢查用戶是否已經在一個組中,等遠程驗證無法識別模型項目中的控制器。MVC 3,EF4使用單獨的模型組裝項目進行自定義遠程驗證

[Remote("IsUID_Available", "Validation")] 

當我嘗試在模型項目中添加對主項目的引用時,它說它會導致循環依賴,並且不允許添加它。

我是否需要將我的模型移出單獨的程序集並進入主項目,還是有另一種方法可以在模型處於單獨的程序集中進行遠程驗證。

此處最佳做法是什麼。我讀過幾篇文章,說把模型放在一個單獨的程序集中是最好的做法,但是如果你不能使用MVC的一半驗證功能,那麼重要的是什麼。我也注意到大多數的Microsoft MVC示例只顯示了主項目中的模型,並沒有被分解爲一個程序集。

+0

您編寫的「不能識別模型項目中的控制器」,爲什麼要將控制器放入模型部件中? – 2012-07-24 17:02:11

+0

控制器不在模型組件中,但需要在模型的Remote屬性中指定控制器,但Model項目不知道它,並且無法添加對其的引用。所以它看起來像你不能在一個單獨的程序集中的模型上使用遠程驗證屬性。 – DevDude 2012-07-24 19:13:14

+0

你應該考慮製作視圖模型,並在其上放置屬性。然後,您可以擁有您的業務/模型組件,並將視圖模型放入Web組件中(它們屬於哪個控件)。 – 2012-07-25 04:59:53

回答

0

原來這畢竟不是問題。上述代碼中指定的遠程驗證可以在單獨的程序集中與模型一起使用。

ReSharper在Visual Studio中給出了控制器未知的錯誤,並用紅色下劃線標記,但實際編譯並測試了遠程驗證後仍然有效。