求一个动态模板解决方案

gzpepco 2012-06-13 06:11:05
在做一个webform程序,需要支持多种不同的外观风格,但显示的内容是一样的。

首先想到的肯定是通过skin(css)更换来实现,但现在的实际情况是不同的风格模板虽然显示的内容一样,但结构布局有很大差异,理论上虽然可以通过单纯修改css实现,但实际上很难,必须同时改css+html才行。

核心问题就是求一个能同时动态更换css和html的模板方案。望回复者能先看清楚问题

1、用skin,app_theme这些方案就不用考虑了
2、也不要回复一句用MasterPage,MasterPage我懂,但是是否、如何能解决我的这个问题?

谢谢!

...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
背离终点 2012-06-14
  • 打赏
  • 举报
回复
每种布局建一个Web用户控件
然后根据不同布局动态调用ascx


用户控件类名 control = (用户控件类名)this.LoadControl("用户控件文件路径.ascx");
control.用户控件中你写的各种方法();
gzpepco 2012-06-13
  • 打赏
  • 举报
回复
这是个可行的方案。

[Quote=引用 8 楼 的回复:]
引用 7 楼 的回复:
我打个比方,就拿现在这个页面来说,我的头像是在左边的,如果有另外一个模板,头像是在右边,理论上,单改css是可以的,但如果模板差异更加大更加复杂,不改动html(调整位置,增加标签等)会很难做。
你说的“aspx、ascx、masterpage当然是不二选择”,如何实现呢??



引用 3 楼 的回复:
引用楼主 的回复:
实际情况是不同的风格模板虽然显示……
[/Quote]
何年 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
我打个比方,就拿现在这个页面来说,我的头像是在左边的,如果有另外一个模板,头像是在右边,理论上,单改css是可以的,但如果模板差异更加大更加复杂,不改动html(调整位置,增加标签等)会很难做。
你说的“aspx、ascx、masterpage当然是不二选择”,如何实现呢??



引用 3 楼 的回复:
引用楼主 的回复:
实际情况是不同的风格模板虽然显示的内容一样,但结构布局有很……
[/Quote]

打个比方。如果我要将一个页面该成风格完全不同的样子。可以用到 masterpage
因为我页面的内容放在那里,取决于你的母板页内容部分的布局,‘
我只要两个风格完全不同的 masterpage 然后在要改动的页面制定它的 masterpage 就行了。因为布局是根据母板而定的。
gzpepco 2012-06-13
  • 打赏
  • 举报
回复
我打个比方,就拿现在这个页面来说,我的头像是在左边的,如果有另外一个模板,头像是在右边,理论上,单改css是可以的,但如果模板差异更加大更加复杂,不改动html(调整位置,增加标签等)会很难做。
你说的“aspx、ascx、masterpage当然是不二选择”,如何实现呢??


[Quote=引用 3 楼 的回复:]
引用楼主 的回复:
实际情况是不同的风格模板虽然显示的内容一样,但结构布局有很大差异,理论上虽然可以通过单纯修改css实现

没听说过这种理论。使用不同的aspx、ascx、masterpage当然是不二选择。
[/Quote]
g4_magicvr 2012-06-13
  • 打赏
  • 举报
回复
- -

你可以考虑用一套标签记录下模板(其实就是页面上各个部分的输出次序和相应的参数)
然后……用的时候从数据库里面把它读出来 ,翻译成页面文件
然后把页面文件丢给.net玩就好……

其实就是一个动态写页面的过程
跟你在.aspx后缀的那个文件上面写的没什么区别 只不过你现在要多做一步 让电脑去写.aspx
gzpepco 2012-06-13
  • 打赏
  • 举报
回复
谢谢!还有其他方案吗?
有个可能有点傻的想法,大家看看是否可行?就是是否可以一个aspx.cs可以动态对应不同的aspx呢?
因为就winform架构来说,aspx其实就是一个html模板呀。




[Quote=引用 2 楼 的回复:]
你应该换个角度,就像PHP的WordPress一样,每套风格都放在一个单独的文件夹里,每个里面包含单独的样式和html模板页面(内容一样的话,可以定义相同的标签,只是改变CSS就行,便于后台解析)

那么你程序应该做的就是解析模板,而前台呢,也可以选择不同风格的进行更换

而后期呢,如果添加风格,只需要上传包含该样式和html模板的文件就可以了
[/Quote]
  • 打赏
  • 举报
回复
如果是纯粹的客户端布局,那么就使用javascript来写程序实现。
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
实际情况是不同的风格模板虽然显示的内容一样,但结构布局有很大差异,理论上虽然可以通过单纯修改css实现[/Quote]

没听说过这种理论。使用不同的aspx、ascx、masterpage当然是不二选择。
  • 打赏
  • 举报
回复
你应该换个角度,就像PHP的WordPress一样,每套风格都放在一个单独的文件夹里,每个里面包含单独的样式和html模板页面(内容一样的话,可以定义相同的标签,只是改变CSS就行,便于后台解析)

那么你程序应该做的就是解析模板,而前台呢,也可以选择不同风格的进行更换

而后期呢,如果添加风格,只需要上传包含该样式和html模板的文件就可以了
xiaowen_ly 2012-06-13
  • 打赏
  • 举报
回复
一般多种风格应该是页头或者页尾,如果整个页面都有多种结构的话,那就不好弄了.页头页尾的话可以把html放js,根据用户选择的当前风格,调用不同的js块.

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧