我相信這個問題已經被提出並回答了;但我還沒有設法找到它...如何在使用Custom System.Web.UI.Control時使XHTML驗證開心?
我正在創建一個非常簡單的自定義System.Web.UI.Control有幾個屬性。我可以在我的ASPX頁面定義以下標籤,一切都開心:
<ns:MyControl runat="server" MyProperty="Value" />
但是,如果我想有一個或多個「子」的屬性,就像這樣:
<ns:MyControl runat="server" MyProperty="Value">
<Element AnotherProperty="AnotherValue1" />
<Element AnotherProperty="AnotherValue2" />
</ns:MyControl>
我想不通我需要做什麼才能使XHTML驗證。我一直有
- 內容是不允許開元素的結束標記之間的「XXX」
- 元素「XXX」不支持
- 名稱包含大寫字符,這是不允許
該代碼實際上按預期方式運行,但我還沒有管理找到一個很好的例子,如何正確地做到這一點,所以噸帽子一切都驗證。在實現自定義控制方面,我只是所有的屬性在目前掐滅,看起來是這樣的:
[ParseChildren(true)]
[PersistChildren(false)]
public class MyControl : Control
{
public String MyProperty { get; set; }
public String Element { get; set; }
}
最終元素是爲了建立元素的集合。任何關於如何正確執行此操作以及如何驗證XHTML的見解都將不勝感激。
在此先感謝。
可能請你闡明你爲什麼建議取下解析/兒童堅持屬性?當然,我認爲我應該將Parse視爲真實並堅持爲假,但對於爲什麼應該將其徹底刪除感到好奇?它與PersistenceMode是多餘的嗎? – 2010-08-29 00:27:27
文檔指出「使用元數據屬性ParseChildren(true)標記您的服務器控件指示解析器將服務器控件的標記中包含的元素解釋爲屬性。」在你的例子中,你指定'MyProperty'作爲一個屬性。卸下裝飾可以保護您免受意外的行爲。就這樣。 – kbrimington 2010-08-29 00:46:36