2

在我的 web.config 中,我使用以下页面声明

<pages maintainScrollPositionOnPostBack="true" Theme="Theme1">

旨在能够在 Web 应用程序上使用不同的主题来自定义它为几个不同的客户端显示的方式(其中一些希望在 Web 应用程序的页面上拥有自己的品牌)

如果我在我的开发代码中遗漏了主题指令,它在调试时无法正确显示,所以我希望在 web.config 中定义主题......但是当它如上所述定义时,我去发布我的解决方案每个 .aspx 页面声明都来自此:

<%@ Page Language="VB" CodeFile="MRSHome.aspx.vb"%>

对此:

<%@ page language="VB" inherits="App_Web_peiwi24o" theme="Theme1" maintainScrollPositionOnPostBack="true" %>

和页面级主题声明会覆盖 web.config 文件中设置的主题声明,我需要保持这种情况,因为当用户需要时,某些页面会以编程方式切换到打印友好主题。

如何防止 web.configs 页面设置在编译期间附加到每个页面的页面声明中?

4

1 回答 1

0

您可以在 webconfig 中添加 appsettings,而不是在 web.config 页面声明中声明主题:

<appSettings>
    <add key="MyCustomTheme" value="Theme1" />
</appSettings>

在 PreInit 表单中,您可以设置页面的主题:

Protected Sub WebForm1_PreInit(sender As Object, e As EventArgs) Handles Me.PreInit
        Dim myTheme As String = ConfigurationManager.AppSettings("MyCustomTheme")
        Page.Theme = myTheme 
End Sub

因此,当您部署时,您的页面声明将不包含任何主题。在运行时,它将拾取 config.xml 中定义的正确主题。

于 2013-09-19T03:32:52.400 回答