【问题标题】:What is the most efficient way of changing content before render (ASP.Net)在渲染之前更改内容的最有效方法是什么(ASP.Net)
【发布时间】:2011-10-10 14:56:23
【问题描述】:

我们正在使用 CMS,我需要更正一些由完全黑盒化的控件生成的 HTML。通常我会对有问题的控件进行子类化并在其中对其进行调整,但是由于控件的编写方式,我无法删除有问题的属性。

这让我只能选择通过母版页本身的 Render 方法执行此操作。我正在考虑在呈现之前更改内容字符串,这将涉及一些正则表达式以移除正在呈现的无效属性。

鉴于此操作将在每个页面上运行,这是实现它的最有效方法吗?我应该先做一个 string.Contains() 来检查 HTML 元素的存在吗?使用正则表达式会导致性能问题吗?

【问题讨论】:

    标签: asp.net regex content-management-system


    【解决方案1】:

    首先,这必须在每个页面上运行吗?如果是这样,那很好,但如果您只是在每个页面上运行,因为它是您当前想到的解决方案,那么回到手头的业务问题可能会更好。

    如果您需要架构决策,“在绑定之前修复”比“在渲染方法中修复”更可取。这与母版页无关。我宁愿使用“数据集”来使用行绑定事件,因为代码显示出更清晰的意图并且通常表现更好。

    如果这是一遍又一遍的相同内容,我也会考虑缓存。如果不是,那么您为什么要使用母版页。而且“它有一个渲染事件”不是一个很好的理由。

    希望这会有所帮助。

    【讨论】:

    • 我刚刚重新评估了这一点,我实际上可以对控件进行子类化并从那里更正 HTML,所以我对此更满意。我写这篇文章的时候一定很开心:-)
    • 很多时候,简单地提出问题就能让你头脑清醒,从而解决问题。
    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 2020-07-24
    • 2013-05-29
    • 2014-05-21
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多