我正在开发一个 ASP.NET MVC 应用程序,其中任何页面的内容都可以从数据库中提取(如果存在)并显示在页面上。
这是为了使非技术人员能够编辑内容而无需进入源代码(例如视图)并进行更改。
我这样做的方式是,每个控制器都派生自一个基本控制器。基本控制器重载“OnActionExecuted”并借此机会提取分配给当前动作/控制器的任何内容。
如果操作返回派生自“ContentViewModel”的 ViewModel,它会使用数据库中的文本填充 ViewModel 的“Text”属性。
然后文本由视图呈现。
你能看出这个设计有什么弱点吗?
如果我有用于提取内容的 HtmlHelper 扩展而不是基本控制器,那会更好吗?我从视图中调用它?
我问这个的一个原因是,拥有我自己的基本控制器似乎会干扰调用“Html.RenderAction”,这似乎期望指定的控制器直接从“System.Web.Mvc.Controller”继承。