【问题标题】:How can I change the look of an ASP.NET page without recompiling code?如何在不重新编译代码的情况下更改 ASP.NET 页面的外观?
【发布时间】:2009-08-28 23:27:34
【问题描述】:

我正在考虑承担一个新的 Web 开发项目,客户有两个大规范,第一个是他们希望在 .NET 中开发它,第二个是他们希望能够改变外观和感觉页面无需重新编译代码。虽然我是 ASP.NET 新手,但我熟悉模型视图控制器的概念,ASP.NET MVC 是否允许客户避免一起编译或只是避免编译业务逻辑?有没有什么好书或资源可以推荐,让我了解更多?项目还处于早期阶段,我不是与客户讨论此事的人,但我将是负责工作的人,我想知道可能性。

【问题讨论】:

  • 您认为客户会乐意在样式表中编辑样式吗?也许更多地扩展他们对改变外观和感觉的期望。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            设计页面,以便您可以轻松地将样式应用于页面的不同部分。通过将页面区域分解为“div”来做到这一点,然后您可以为这些 div 提供类名和 id。一旦你有了这个,你就可以用 CSS 编写样式表并将它们应用到页面上。许多网站提供的一件事是将主题应用于网站的能力。主题只是相关样式表和图像的集合,它们使网站具有特定的外观。将每个主题放在单独的目录中,然后您只需更改加载它们的目录即可更改外观。

            准备好学习(并与 CSS 战斗)一开始它是一门黑艺术。

            除非你真的有表格,否则不要使用表格元素

            【讨论】:

              【解决方案7】:

              如前所述,CSS 样式表是无需重新编译即可更改 Web 应用外观的最佳方式,而 csszengarden 是一个极好的示例,说明如何对网页进行如此多的更改。

              但是,您也希望只将表格用于表格数据,而不是用于布局组件。

              我倾向于经常使用该元素来为表单元素(例如文本框)添加标签。

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

              但是,正如 Kevin Jones 所提到的,您首先需要与 CSS 作斗争,因为没有表格的布局需要更多地考虑如何让 CSS 做您想做的事情。

              【讨论】:

                【解决方案8】:

                CSS 在这里肯定能帮上大忙。另一个好技巧是动态交换母版页——实际上并不难,只需在 PreInit 事件期间在页面中设置 MasterPageFile 属性。

                就动态切换的主人而言,您可以让它们实现一个公共接口或从一个公共基类下降并让页面引用它。

                【讨论】:

                  【解决方案9】:

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

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

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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2014-05-03
                    • 2020-04-20
                    • 1970-01-01
                    • 2020-12-29
                    • 2010-09-07
                    • 2022-10-15
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多