【发布时间】:2013-02-22 18:11:41
【问题描述】:
我最近开始学习ASP.NET Model View Controller (MVC)。它在网站上采用的方法非常独特,我注意到dynamics 的潜力。这将大大改善维护。
但我可以看出过度使用dynamics 可能会带来多大的坏处,尤其是当您偏离strongly typed model 时。所以我的问题是……
我正在创建一个布局,但我希望布局为fluid。我希望设计可以很容易地改变而不影响我的逻辑。我知道您可以创建Master Pages 和Master Content Pages,它们可以轻松容纳大部分布局。除非这对我的使用仍有限制。
有没有办法将这些Master Pages 和Master Content Pages 变成真正的动态实体?本质上,designer 可以使用我创建的所见即所得字段,该字段允许修改整个网站?
我最初的想法是存储创建一个dynamic layout,其中每个View 引用一个数据库;无论这些变量是什么,都会创建布局。但我不确定这是最好的方法吗?
关于最佳方法的任何建议或想法?
请我不打算开始辩论,但如果人们能指出我可以研究的方向,那么这种实施方法将非常有帮助。这样我就可以找到适合dynamic layout 的项目需求的最佳解决方案。
更新:
为了介绍这个项目的背景,我的公司有几个子公司。这些子公司将使用该应用程序,但希望为特定公司量身定制。为了避免过多的设计布局,我想abstract 那部分。
这样我的logic 不会受到影响,但该软件的模块足以满足我们所有子公司的设计需求,而我不必自定义其中的每一个或冒着设计师影响logic 的风险。
感谢您的帮助。
更新:
为了帮助澄清,目标是允许User Interface 与应用程序分离。在普通的Windows Application 中,我会使用Inversion Of Control 来帮助将接口和结构与初始逻辑分开。
这种解耦方法很有帮助,目标是在这种情况下解耦接口Razor Syntax,这将设计创建结构。如果您有网站:
<html>
<div id="Page-Container">
<div id="Header" />
<div id="Content" />
<div id="Footer" />
</div>
</html>
该结构将是静态的,但在我的情况下,我希望它是 dynamic。这样我的逻辑可以通过结构抽象出来,但设计者可以随意操作和更改page layout。
【问题讨论】:
-
看看 Orchard Project,人们可以在其中提供自己的主题。它有一个区域的概念,每个主题都可以公开。
-
这听起来类似于 Dot Net Nuke。布局的某些部分被分解为模块。
标签: c# asp.net-mvc dynamic