2011-10-10 21 views
1

我們正在使用CMS,我需要更改正由一個完全黑盒控件生成的HTML的正確部分。通常我會對違規控件進行分類並在其中對其進行調整,但由於控件的寫入方式,我無法刪除違規屬性。渲染前更改內容的最有效方式是什麼(ASP.Net)

這給我留下了唯一的選擇,即通過母版頁上的Render方法執行此操作。我正在考慮在呈現內容之前更改內容字符串,這將涉及到一些正則表達式,以便刪除正在呈現的無效屬性。

鑑於此操作將在每個頁面上運行,這是實現它的最有效方式嗎?我應該做一個string.Contains()來檢查HTML元素的存在嗎?使用正則表達式會導致性能問題?

回答

0

首先,這是否必須在每個頁面上運行?如果是這樣,那很好,但如果你只是在每個頁面上運行,因爲它是你目前想到的解決方案,那麼回頭看看業務問題可能會更好。

如果您想要一個架構決策,「在綁定之前修復」比「修復渲染方法」更可取。這與母版頁無關。我寧願按摩一個「數據集」來使用行綁定事件,因爲代碼顯示更明確的意圖,通常表現更好。

我也會考慮緩存,如果這是一遍又一遍的相同的內容。如果不是,那你爲什麼要使用母版頁。 「它有一個渲染事件」不是一個好的理由。

希望這會有所幫助。

+0

我剛剛重新評估了這一點,我實際上可以對控件進行分類並從那裏修正HTML,所以我對此很開心。我一定是有一段時間,我寫這個:-) – Mantorok

+0

很多時候,只是問問題清除你想要解決問題。 –

相關問題