这是一个建筑哲学问题:)
您想要创建非常简单的基于 MVC 的模块化“CMS”的图像。实际上,您唯一希望它做的事情就是您可以使用以下内容(伪语言)指定(例如 XML)每个页面的结构:
使用布局:Subpage.cshtml 对于“标题”部分(布局中的占位符)渲染控制器“标题”,操作“子页面标题” 对于“LeftCol”部分渲染控制器“菜单”操作“MainMenu” 对于“内容”部分渲染控制器“文章”操作“列表” 等等
那么,什么是优雅和推荐的方法呢?我现在可以想到两种方法:
选项1:
定义自己的路由,它将捕获所需的 URL 并为此请求创建自己的 MyMvcHandler。在此处理程序中,处理不会实例化控制器(没有一个“主”),而是会读取“页面结构配置”(上面的示例),实例化所有必需的控制器..但我不确定,该做什么这一点 - 如何收集动作的结果并将它们放入布局中?
选项 2:让默认的 MvcHandler 存活,并始终使用一些默认操作调用一些“MasterController”,这只会返回 View(layoutPage); 在布局页面中,实现“页面部分”(内容的占位符)作为我自己的辅助方法,类似于 Html.RenderAction - 仅定制为查看“页面结构配置”并呈现正确的控制器+动作。但是这样一来,MasterController 在管道中对我来说似乎真的没用,有什么办法可以摆脱他吗?
你能想出更好的办法吗?你能看到这些方法的一些基本起伏吗?你能给我指出一些关于这个主题的好资源吗?(我找不到任何)。
非常感谢 MVC 忍者 ;)