渲染我使用的一些組件之前。當頁面呈現時,組件生成html評論標籤。如果我在一個頁面上使用這個組件10次,html評論插入了10次。如何刪除HTML註釋標記在asp.net
如何刪除HTML註釋標記之前渲染頁面?
渲染我使用的一些組件之前。當頁面呈現時,組件生成html評論標籤。如果我在一個頁面上使用這個組件10次,html評論插入了10次。如何刪除HTML註釋標記在asp.net
如何刪除HTML註釋標記之前渲染頁面?
創建基於第三方組件中的自定義服務器控件,像這樣:
namespace ServerControls
{
[ToolboxData("<{0}:LabelWithComment runat=server></{0}:LabelWithComment>")]
public class LabelWithComment : Label
{
protected override void Render(HtmlTextWriter output)
{
var htmlFromBaseClass = new StringBuilder();
var htmlTextWriterForBaseClass =
new HtmlTextWriter(new StringWriter(htmlFromBaseClass));
base.Render(htmlTextWriterForBaseClass);
var modifiedHtml = ModifyHtmlUsing(htmlFromBaseClass);
output.Write(modifiedHtml);
}
private static string ModifyHtmlUsing(StringBuilder stringBuilder)
{
stringBuilder.Replace("<!-- some comment -->", "");
return stringBuilder.ToString();
}
}
}
然後自定義ModifyHtmlUsing方法repalce任何你想要的。
然後包括你在哪裏使用控制在頁面上這個指令:
<%@ Register Assembly="ServerControls" Namespace="ServerControls" TagPrefix="Custom" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<Custom:LabelWithComment ID="lblLabelWithComments"
Text="Some Text <!-- some comment -->" runat="server" />
</div>
</form>
</body>
</html>
使用服務器端註釋:
<%--
Commented out HTML/CODE/Markup. Anything with
this block will not be parsed/handled by ASP.NET.
<asp:Calendar runat="server"></asp:Calendar>
<%# Eval(「SomeProperty」) %>
--%>
或僅呈現在調試模式下評論
#if DEBUG
// Add my comment for debug only
#endif
什麼樣的分量?假設它是一個呈現HTML註釋的自定義服務器控件。每個服務器控件都控制其向瀏覽器呈現內容的過程。因此,HTML註釋將通過此控件呈現並直接呈現給瀏覽器。舉例來說,它將是:http://msdn.microsoft.com/en-us/library/aa338806%28VS.71%29.aspx您可以創建自己的繼承自此組件的類並更改渲染過程,但效率不高。
你可以使用JavaScript來可能做到這一點,但我要問,爲什麼這些註釋的問題?他們可能不會被渲染到時你的應用是建立在釋放模式的瀏覽器...
HTH。
由於此評論包含太多代碼和文本。 – ebattulga 2010-01-18 18:34:36
好的。不幸的是,它讓你離開渲染過程;我希望有一個簡單的方法,但我不知道有什麼方法可以簡單地覆蓋一些內部過程,除非它們允許您配置它(通過屬性關閉它)或使用JS代碼刪除註釋,我認爲你可以做,但不是100%肯定的......如果你有支持,你可以提出一個請求來添加一個屬性作爲一個功能,以關閉它。 – 2010-01-18 19:41:33
我沒有這個組件的源代碼。只有組裝。如果我有來源,我已經修復它 – ebattulga 2010-01-18 18:23:06
,如果你能解決這個問題,如果你有源代碼,試試這個:http://www.red-gate.com/products/reflector/ – TJMonk15 2010-01-18 18:47:59