如何在不重新编译代码的情况下更改ASP.NET页面的外观?

时间:2009-08-28 12:56:15

标签: .net asp.net asp.net-mvc

我正在考虑开发一个新的Web开发项目,客户有两个大规格,第一个是他们希望它在.NET中开发,第二个是他们希望能够改变外观和感觉页面,而无需重新编译代码。虽然我是ASP.NET的新手,但我熟悉模型视图控制器的概念,ASP.NET MVC是否允许客户避免编译所有内容或者只是避免编译业务逻辑?您是否有可以推荐的好书或资源,以便我可以了解更多信息?它仍然是项目的早期阶段,我不是那个与客户谈论这个问题的人,但我将是那个正在做工作的人,我想知道可能性。

9 个答案:

答案 0 :(得分:8)

在不更改代码的情况下更改网页外观的最佳方法可能是via the style sheetHere's one of the best examples

编辑Here's some information on CSS Editors可用。

答案 1 :(得分:3)

Asp.Net Webforms支持ThemesProfiles。这两种方法都允许您为网站配置多个外观,并使用页面上的控件切换它们。

答案 2 :(得分:1)

答案 3 :(得分:1)

如果您正在更改视图中的HTML,则无需每次都重新编译它,即使您向其添加代码(只要它在视图外部使用的任何内容已经在编译代码中)。

另一方面,如果您只是改变颜色和布局等内容,那么所有这些都可以在CSS中完成,而这甚至不需要在项目中。

答案 4 :(得分:0)

设计页面,以便您可以轻松地将样式应用于页面的不同部分。通过将页面区域分成'div'来执行此操作,然后您可以为这些div提供类名和ID。完成此操作后,您可以在CSS中编写样式表并将其应用于页面。许多网站提供的一件事是能够将主题应用于网站。主题只是相关样式表和图像的集合,使网站具有特定的外观。将每个主题放在一个单独的目录中,然后只需更改它们从中加载的目录即可更改外观。

准备学习(和CSS一起战斗)起初它是一种黑色艺术。

除非你真的有一个表

,否则不要使用表元素

答案 5 :(得分:0)

如上所述,CSS样式表是改变webapp外观而不进行任何重新编译的最佳方式,而csszengarden是如何更改网页的绝佳示例。

但是,您还希望仅将表格用于表格数据,而不是用于布置组件。

我倾向于经常使用元素将标签放到表单元素上,例如文本框。

您还需要在div上设置id属性,跨越表单元素以便更改这些元素。可以根据元素类型和之前的内容进行更改,但我发现能够告诉它更改footerdiv更安全,无论应用程序中还有哪些更改,因为html可能会更改,div可能已被更改为跨度,然后我在css文件中的假设是错误的,并且他们的html更改导致css更改,不必要。

但是,正如凯文·琼斯提到的那样,你首先需要与CSS作斗争,因为没有桌子的布局需要更多地思考如何让CSS做你想做的事。

答案 6 :(得分:0)

CSS可以在这里提供帮助。另一个好方法是动态交换masterpages - 真的不太难做,只需在PreInit事件期间在页面中设置MasterPageFile属性。

在谈到动态切换的主服务器时,您可以使它们实现一个公共接口或从公共基类继承并让页面引用它。

答案 7 :(得分:0)

如何使用主题(WebForms)并动态更改它们?

This入门套件有一个简单的例子

您还可以使用jQuery将样式表设置从类更改为特定的css属性。 (这也适用于ASP .NET MVC和WebForms)

答案 8 :(得分:0)

如果您熟悉MVC,我会研究ASP.NET MVC。但是,您也可以使用自ASP.NET 2.0以来已经存在的大量内置功能(如MasterPages)来控制模板和主题以控制和切换页面布局,颜色方案等。两者都可以使用最终会改变的CSS你的代码的样子。甚至标准的ASP.NET Web表单控件也包含一个CssClass属性,可以设置该属性并用于格式化Web表单控件。

相关问题