我正在C#/ ASP.net中創建一個新的HtmlGenericControl,並且需要在控件上創建一個沒有值的屬性。這意味着在屬性後面沒有=「」。如何在HtmlGenericControl上創建無價值的屬性
oHtmlGenericControl = new HtmlGenericControl("MyHtmlTag");
oHtmlGenericControl.Attributes.Add("MyFirstAttribute", "MyAttributeValue");
oHtmlGenericControl.Attributes.Add("MySecondAttribute", "");
會產生這樣的事情...
<MyHtmlTag MyFirstAttribute="MyAttributeValue" MySecondAttribute=""></MyHtmlTag >
而我要的就是這個...
<MyHtmlTag MyFirstAttribute="MyAttributeValue" MySecondAttribute></MyHtmlTag >
我試圖傳遞null而不是emptry串,但那麼該屬性根本不會出現。
我做了以下思維它是在第一次工作...
oHtmlGenericControl = new HtmlGenericControl("MyHtmlTag");
oHtmlGenericControl.TagName = oHtmlGenericControl.TagName + " MySecondAttribute";
但它結束了給我這個...
<MyHtmlTag MySecondAttribute></MyHtmlTag MySecondAttribute>
因此,根據該意見,HTML中可能沒有任何「無價值」屬性。仔細檢查W3C標準,添加需要添加的屬性的正確方法是AttributeName =「AttributeName」。 AttributeName本身被大多數瀏覽器接受並認爲是有效的,但在大多數在線示例中都沒有賦值。
oHtmlGenericControl.Attributes.Add("MyAttributeName", "MyAttributeName");
所以上面的例子在我的情況(也可能是所有類似案件)工作,但並不完全回答關於是否可以在不使用HtmlGenericControl添加值的屬性問題。
<MyHtmlTag MyAttributeName="MyAttributeName"></MyHtmlTag>
你爲什麼要這麼做? HTML中確實沒有無價值的屬性。大多數瀏覽器都會接受它們(例如輸入字段中的「禁用」),但這只是它們的語法約定。寫作'disabled =「true」'是寫HTML的正確方法,就像HTML一樣。 –
@Joonas「checked」就是一個例子 – Crowcoder
是的,瀏覽器會正確評估'checked',即使它不是有效的XHTML,但是寫入它的有效方式是checked ='checked'。 –