1
我創建了一個自定義ASP.NET控件將作爲容器作用與特定的包裝標籤:從顯示在自定義屬性防止ASP.NET控件屬性
class Section : System.Web.UI.HtmlControls.HtmlGenericControl
{
public string WrapperTag // Simple interface to base-class TagName
{
get { return base.TagName; }
set { base.TagName = value; }
}
public string BodyStyle
{
get
{
object o = ViewState["BodyStyle"];
return (o == null) ? "" : (string)o;
}
set
{
ViewState["BodyStyle"] = value;
}
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
Attributes["style"] = BodyStyle + ";";
base.Render(writer);
}
}
這工作沒有問題,但出於某種原因,BodyStyle
屬性也顯示爲HTML輸出中的一個屬性。所以,如果我使用控制:
<xx:Section runat="server" WrapperTag="div" BodyStyle="background-color:#ffeeaa;"><other stuff /></xx:Section>
此輸出:
<div BodyStyle="background-color:#ffeeaa;" style="background-color:#ffeeaa;"><other stuff HTML output /></div>
我試圖產生輸出:
<div style="background-color:#ffeeaa;"><other stuff HTML output /></div>
我的問題:
- 爲什麼
BodyStyle
顯示爲HTML屬性? - 由於出現
BodyStyle
,爲什麼不出現WrapperTag
?