我正在開發一個ASP.NET MVC應用程序,其中可以從數據庫中提取任何頁面的內容(如果存在)並顯示在頁面上。將內容訪問邏輯放入BaseController是一個好主意嗎?
這是爲了讓非技術人員能夠編輯內容而不必進入源代碼(例如視圖)並改變內容。
我這樣做的方式是,每個控制器派生自一個基礎控制器。基礎控制器重載'OnActionExecuted',並藉此機會提取分配給當前操作/控制器的任何內容。
如果該操作返回一個派生自'ContentViewModel'的ViewModel,它將使用數據庫中的文本填充ViewModel的'Text'屬性。
然後文本被視圖渲染。
你能看到這個設計的任何弱點嗎?
如果不是有一個基礎控制器,我有HtmlHelper擴展來提取內容,我從視圖調用它會更好嗎?
我問這個的一個原因是,擁有我自己的基礎控制器似乎會干擾調用'Html.RenderAction',這似乎期望指定的控制器直接從'System.Web.Mvc.Controller'繼承。