2015-01-15 93 views
0

我對MVC遊戲稍微遲了一點,坦率地說有太多的信息了,幾乎不可能使用「正確」關鍵字來接近答案。在MVC控制器之間共享異步方法

我有一個函數從數據庫獲取codes並將它們顯示在自動完成列表中。我想在控制器之間共享這個GetCodes方法,這些codes用於其他形式。

這是什麼最佳MVC練習?

用這個函數創建一個基類更好嗎,還是創建一個Web API控制器來共享這些類型的方法更好?

[編輯] 要澄清,codes我提供自動完成,就像一個大州或省的城市名單。這是一個靜態列表,只有在聯邦一級發生變化時才由政府更新。

我只是不想剪切/粘貼執行搜索的函數,我寧願寫一些可重用的東西。現在,功能GetCodes住在一個控制器上,我從站點的其他部分調用該控制器的Action方法。我不喜歡這個,我正在尋找一些關於如何使用ASP.NET的其他部分以更好更強大的方式來實現這一點的建議。

謝謝

回答

0

使用視圖模型 - 創建一個視圖模型(或視圖模型基類),要麼加載codes或提供加載codes的方法,然後使用該視圖模型作爲大圖的屬性模型(或從視圖模型繼承)。

0

任何時候當你說「最好的方式......」的答案總是「這取決於很多因素」。

我們對您的設計,要求,實施或其他細節並不十分了解。但是,有一些事情要記住。

如果您不需要任何種類的分佈式架構,沒有理由創建WebApi控制器。

聽起來好像您的數據只是您模型的一部分,因此您可以使用任何標準模式來訪問模型數據。任何教程,如MVC音樂商店或書呆子晚宴都會告訴你如何做到這一點。

僅僅因爲數據在控制器之間共享並沒有使它變得特別..模型的全部要點是數據可以被任何控制器使用。

相關問題