在 ASP.NET 中动态设置主题

2024-06-19

我有一个连接到不同域的应用程序,我没有复制和修改每个应用程序,而是在硬盘驱动器上使用相同的物理位置,但在 IIS 上使用单独的应用程序池和网站。

基本上我想根据主机名更改主题。 IE。用户访问“websome.com”获取“websome”主题,用户访问“jamessome.com”获取“jamessome”主题。

我在 web.config“pages”属性中设置了主题,该属性将主题全局应用到整个网站。有什么方法可以根据输入的域使用动态修改该设置吗?这可能是可能的,但是什么是缩小规模以及您建议用很少的代码做什么以简化解决方案。据我所知,如果我每次用户进入时编辑 web.config 将花费大量时间,这不是那么优雅......所以任何 ASP.NET 专家都可以编写两行代码,这样神奇就会发生吗?

网站上针对这些问题的解决方案很少,但这需要我向网站上每个页面的 Page_Init 事件添加代码,这是不现实的。


事实上,它必须设置在Page_PreInit,如果您尝试更改主题,它将不起作用Page_Init.

最常见的解决方案是为所有页面使用父类。这是一次性的更改,并将逻辑放置在父类中。而不是继承自Page然后你继承自,比如说,ThemedPage。班级内部ThemedPage,它继承自Page当然,您可以重写 Page.OnPreInit 方法本身。

你要求“两行”,如果你消除混乱,它实际上是一条。这是VB:

Public Class ThemedPage
    Inherits Page

    Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs)
        Me.Theme = HttpContext.Current.Request.Url.Host.Replace(".com", "")
        MyBase.OnPreInit(e)
    End Sub
End Class

而不是这个:

Partial Class _Default
    Inherits System.Web.UI.Page

你现在写这个:

Partial Class _Default
    Inherits ThemedPage

就这样!一次性搜索/替换就完成了。为了完整起见,以下是 C# 的相同内容(仅是类):

// C# version
using System.Web;
using System.Web.UI;

public class ThemedPage : Page
{

    protected override void OnPreInit(System.EventArgs e)
    {
        this.Theme = HttpContext.Current.Request.Url.Host.Replace(".com", "");
        base.OnPreInit(e);
    }
}

Update:添加了 VB 代码示例
Update:添加了 C# 代码示例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.NET 中动态设置主题 的相关文章

随机推荐

  • 按列表中(不在)中的索引值对 Pandas 数据帧进行切片

    我有一个pandas数据框 df 我想选择所有索引df那是not在列表中 blacklist 现在 我使用列表理解来创建所需的切片标签 ix i for i in df index if i not in blacklist df sele
  • 如何向 ExtJS 应用添加自定义字体?

    同事 请建议如何向 ExtJS 添加自定义字体 以便它与应用程序一起加载 如果用户的系统中没有安装此字体 必须将其加载到哪个文件夹 以及应将其包含在何处以及如何包含 谢谢各位的解答 您只需添加新的字体文件即可myApp resources
  • 如何让 PowerShell 等待 Invoke-Item 完成?

    如何让 PowerShell 等待 Invoke Item 调用完成 我正在调用一个不可执行的项目 因此我需要使用 Invoke Item 来打开它 只需使用Start Process wait 例如Start Process wait c
  • tkinter - 使用按钮在帧之间来回切换

    我需要功能 最好是一个功能 当按下下一页和后退按钮时可以在页面之间来回切换 我想这可以通过将布尔变量分配给后退和下一页按钮来完成 不确定是否可以这样做 来确定您是否要前进或后退所有页面的有序列表 需要知道当前升高的框架的索引 索引可用于找出
  • 在 Chrome 中,应用于包含图像的锚点的轮廓高度不正确

    对于我正在开发的网站 我希望当链接聚焦 悬停 活动时 链接周围会出现虚线轮廓 我希望文本和图像链接发生这种情况 我遇到的问题是 虽然我的代码在 Firefox 和 IE 中运行良好 但在 Chrome 7 0 517 41 中 虚线轮廓与我
  • 带数据透视表的 Laravel 查询生成器

    我有两个带有数据透视表的表 Table tours id name country id featured Table countries id name 数据透视表country tour id country id tour id 我想
  • Jasmine 测试中模拟 window.location.reload

    我创建了一个window location reload我的 JavaScript 中的函数 我需要在 Jasmine 中测试时模拟重新加载函数 因为它不断循环 当我跑步时测试进展顺利grunt jenkins 但在浏览器 mozilla
  • 如何通过 COM 将长数组从 VB6 传递到 C#

    我需要将 int 或 long 数组 无关紧要 从 VB6 应用程序传递到 C COM Visible 类 我尝试在 C 中声明接口 如下所示 void Subscribe MarshalAs UnmanagedType SafeArray
  • 如何强制串行端口写入方法在发送数据之前等待线路清除?

    以下是我正在尝试做的一些背景 打开从移动设备到蓝牙打印机的串行端口 将 EPL 2 表格发送到蓝牙打印机 以便它了解如何处理即将接收的数据 收到表格后 将一些数据发送到打印机 这些数据将打印在标签纸上 根据需要多次重复步骤 3 打印每个标签
  • 即使没有结果也返回一个值

    我有这种简单的查询 它返回给定 id 的非空整数字段 SELECT field1 FROM table WHERE id 123 LIMIT 1 问题是如果找不到 id 结果集就是空的 我需要查询始终返回一个值 即使没有结果 我有这个东西工
  • 如何使用div绘制曲线?

    我需要使用 CSS 绘制两条曲线 我尝试过组装一些divs 使用CSSborder radius绘制弧形面板 但结果很糟糕 还有更好的算术吗 正如我之前在评论中提到的 请不要使用CSS用于实现复杂的曲线和形状 虽然仍然可以使用 CSS 来实
  • 添加 Google Play Services 9.0.0 后 Dex 文件超过 64k

    我按照 Firebase 指南添加 FCM 因此我将以下依赖项添加到我的应用程序 gradle 中 compile com google android gms play services 9 0 0 apply plugin com go
  • 重新渲染列表模板导致页面滚动到顶部

    我有一些模板 大致如下所示
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • SSE:如何将 _m128i._i32[4] 减少到 _m128i._i8

    我对 SSE 编码非常陌生 我想将 int32 类型的 m128i 4 的结果存储到 int8 类型的 m128i 中 m128i j i32 k 的值均在 127 和 127 之间 我认为伪代码如下 result i8 vec1 i8 0
  • Ruby 在 Windows 上找不到 sqlite3 驱动程序

    我正在尝试在 Windows 上设置 Ruby on Rails 我正在使用看起来不错的 Flash Rails 发行版 但是 sqlite3 有一个问题 我发现线程告诉我安装版本 1 2 3 安装得很好 我使用的是 ruby 1 9 0
  • 程序堆栈真的会溢出吗?

    如果达到堆栈大小限制 处理器是否会导致操作系统出现 TRAP 从而防止堆栈溢出 P 我相信 Windows 确实有一个堆栈 当您到达末尾时它会增长 在 Visual Studio 编译器中 负责此操作的代码位于chkstk obj modu
  • C++11 容器/适配器属性的实用总结/参考? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找各种 C 11 标准容器和容器适配器的重要属性的全面总结 参考 也可以选择包括 boost Qt 但是按这些属性索引而不是通常的每个容器文档
  • 辍学训练

    如何对由 dropout 产生的许多薄层进行平均 在测试阶段要使用哪些重量 我对这个问题真的很困惑 因为每个细化层都会学习一组不同的权重 那么反向传播是为每个稀疏网络单独完成的吗 这些细化网络之间的权重究竟是如何共享的 因为在测试时仅使用一
  • 在 ASP.NET 中动态设置主题

    我有一个连接到不同域的应用程序 我没有复制和修改每个应用程序 而是在硬盘驱动器上使用相同的物理位置 但在 IIS 上使用单独的应用程序池和网站 基本上我想根据主机名更改主题 IE 用户访问 websome com 获取 websome 主题