我希望我神秘的标题不是太神秘,但我会试着解释一下我真正想做的事情。
我有一个母版页'A',它有子页'B'和'C'。 这是使用ASP.NET中的标准母版页模型实现的。
我的网站有两个主题'T1'和'T2'。 他们实际上代表不同的合作伙伴,T1是我们自己的公司,T2是合作伙伴。
我想在页面'B'和'C'上显示具体内容,具体取决于我使用的主题。例如,我可能想在主题'T2'的合作伙伴页面'B'上插入额外的按钮或图形。此内容将位于页面上的任意位置,具体取决于页面本身。有些合作伙伴甚至可能不使用此功能。
问题是我想尽可能以声明的方式做到这一点,并尽量减少页面对主题的了解。
这就是'反向'母版页概念的用武之地。我想在子页面上定义一个可以插入'主题'特定内容的区域。(我说''主题'因为那是ASP.NET使用的 - 而且很可能是我将内容绑定到的内容。)
所以你可能想知道:
可能的解决方案:
我想知道创建某种用户控件,它会有一个文本键来表示在那里插入什么类型的内容。用户控件必须知道每个“主题”的显示内容 - 可能是通过动态创建相关的附加用户控件。
这看起来有点笨拙 - 所以我想知道其他人可能为类似情况创造了什么样的解决方案。
答案 0 :(得分:1)
您可以使用CSS将内容部分放置在页面的任何位置。所以我不担心页面位置等。
如果是我,我只是动态地将2个不同的css文件加载到一个母版页中,并基于相同的逻辑将不同的内容呈现到占位符中。
答案 1 :(得分:1)
我目前正在开发一个对CSS有太多相似要求的网站。在一个布局中,登录在渲染顺序的顶部是水平的,在右边的列中是另一个。
我们使用标准的ASP.NET主题来推送CSS,通过SkinID推出徽标网址等。
为了获得自定义布局,我创建了一个“Loader”控件,它通过Loader属性中指定的列表加载UserControls。该属性可以直接在加载器标记中定义,也可以通过主题中的.skin文件定义。
列表中的每个键只是UserControl的基本名称(我添加了路径和扩展名)。控件是通过Page.LoadControl()创建的。
答案 2 :(得分:0)
您是否有针对不同合作伙伴的修复布局?或者您希望合作伙伴在运行时选择布局?
如果布局固定比1方式是创建zen样式CSS(http://www.csszengarden.com/)而不是根据客户端/合作伙伴动态加载它。如果您希望合作伙伴在运行时修改布局,那么您可能希望使用Webparts。
希望这有帮助。
答案 3 :(得分:0)