首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HttpModule-如何获取HTML内容或用于修改的控件?

HttpModule-如何获取HTML内容或用于修改的控件?
EN

Stack Overflow用户
提问于 2018-06-21 08:11:35
回答 2查看 0关注 0票数 0

尝试过这样的方法:

代码语言:txt
复制
HttpApplication app = s as HttpApplication; //s is sender of the OnBeginRequest event
System.Web.UI.Page p = (System.Web.UI.Page)app.Context.Handler;
System.Web.UI.WebControls.Label lbl = new System.Web.UI.WebControls.Label();
lbl.Text = "TEST TEST TEST";
p.Controls.Add(lbl);    

在运行这个程序时,我会得到“对象引用没有设置为对象的实例。

如何在原始文件中的特定loaction处插入两行文本(ASP.NET/html)?以及如何计算文件的扩展名(我只想在ASPX文件上应用这个文件.?)

EN

回答 2

Stack Overflow用户

发布于 2018-06-21 16:43:59

我不确定,但我认为您不能使用HttpModule来更改Page的控制树(如果我错了,请纠正我)。但是,你可以修改HTML标记,但是必须为此编写一个“响应筛选器”。有关示例,请参见http://aspnetresources.com/articles/HttpFilters.aspx,或谷歌的“httpModule响应过滤器”。

票数 0
EN

Stack Overflow用户

发布于 2018-06-21 17:34:30

比你想象的要简单得多:

代码语言:txt
复制
    public void Init(HttpApplication app)
    {
        app.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
    }

    private void OnPreRequestHandlerExecute(object sender, EventArgs args)
    {
        HttpApplication app = sender as HttpApplication;
        if (app != null)
        {
            Page page = app.Context.Handler as Page;
            if (page != null)
            {
                page.PreRender += OnPreRender;
            }
        }
    }

    private void OnPreRender(object sender, EventArgs args)
    {
        Page page = sender as Page;
        if (page != null)
        {
            page.Controls.Clear(); // Or do whatever u want with ur page...
        }
    }

如果PreRender事件不够,可以在PreRequestHandlerExecute EventHandler中添加所需的任何事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档