【问题标题】:Mapping a .NET Class to a custom page extension将 .NET 类映射到自定义页面扩展
【发布时间】:2010-03-03 13:13:54
【问题描述】:

我想要的是自定义文件扩展名与不是 System.Web.UI.Page 的类之间的映射,而是从 System.Web.UI.Page 继承的我的类。

即:

*.aspx -> System.Web.UI.Page *.my -> My.Package.MyClass(继承自 System.Web.UI.Page)

我知道我可以将任何扩展名映射为像 .aspx 一样对待,但我找不到做我想做的事情的方法。

谢谢 d

【问题讨论】:

    标签: asp.net customization


    【解决方案1】:

    为此,您需要ASP.Net HTTPHandler

    我知道您提到您已经从 System.Web.UI.Page 继承,但还研究了更轻的重量 ASHX Handler

    【讨论】:

      【解决方案2】:

      自定义页面处理程序以及任何 ASP.NET 页面都可以从您的自定义基类继承,因此您不一定需要执行处理程序。您可以只让代码隐藏页面全部继承自 My.Package.MyClass。

      【讨论】:

      • 是的,这是我通常做的,但当我不需要单独的代码文件时,我也想应用它。我不能使用自定义句柄,因为我需要标记和 asp.net 标签。
      • 是的,就像你提到的,这适用于 ASPX: 在你的原始回复中,你提到了一个自定义的 .my 扩展,它使用处理程序。理论上,您可以将 .my 扩展名指向 .aspx 指向的同一个 PageHandlerFactory 类,从而为您提供自定义扩展名,现在您的新页面构造...
      【解决方案3】:

      当我只需要一间小屋时,我想我正在尝试建造一座城堡。

      如果是没有单独代码文件的 .aspx 页面,我只需添加 Inherits 指令,使其指向我的自定义类,如下所示:

      <%@ Page Language="C#" Inherits="MyPackage.MyClass" %>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-22
        • 1970-01-01
        • 1970-01-01
        • 2022-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多